第三部分:Hadoop使用和Hbase使用
一、实验目的和要求
理解Hadoop和Hbase的工作原理,安装部署HBase,掌握HDFS文件系统和Hbase的操作命令。
二、实验内容和原理
Hadoop文件系统:
HDFS,是Hadoop Distributed File System的简称,是Hadoop抽象文件系统的一种实现。Hadoop抽象文件系统可以与本地系统、Amazon S3等集成,甚至可以通过Web协议(webhsfs)来操作。HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。例如客户端写入读取文件的直接操作都是分布在集群各个机器上的,没有单点性能压力。
Hbase:
HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分。人们可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问。
三、主要环境
CentOS 6.5、虚拟机、hbase-1.2.6-bin
四、实验数据记录和处理
Hadoop使用
4.1 HDFS命令的熟悉
1.创建文件夹
hadoop fs -mkdir input hadoop fs -mkdir /input |
2.列出HDFS文件
hadoop fs -ls #返回HDFS的user/zzf目录下的内容 hadoop fs -ls / #返回HDFS根目录下的内容 hadoop fs -ls /input #返回HDFS的input目录下的内容 |
3.上传本地文件到HDFS
hadoop fs -put newfile /input #上传到HDFS的input目录中 hadoop fs -put test1.txt /input hadoop fs -put newfile newfile1 #上传并重新命名 |
4.将HDFS的文件复制到本地系统中
hadoop fs -get newfile1 newfile1 hadoop fs -get input in |
5.删除HDFS下的文档
hadoop fs -rmr newfile1 hadoop fs -rm /newfile1 hadoop fs -rmr /input |
6.查看HDFS下的文档
hadoop fs -cat newfile hadoop fs -cat newfile | head -2 hadoop fs -cat newfile | tail -2 |
7.运行Sort
bin/hadoop jar hadoop-examples-1.2.1.jar sort /sort_in /sort_out hadoop fs -cat /sort_out/* |
8.查看HDFS命令
hadoop fs -help |
9.报告HDFS的基本统计信息
hadoop dfsadmin -report |
10.安全模式
hadoop dfsadmin -saftmode leave hadoop dfsadmin -saftmode enter |
11.负载均衡
bin/start-balancer.sh |
安装部署HBase
该部分的安装需要在Hadoop已经安装成功的基础上,并且要求Hadoop已经正常启动。
4.2 解压并安装HBase
使用下面的命令,解压HBase安装包:
cd /home/zzf/resource mv hbase-0.98.9-hadoop2.tar.gz ~/ cd tar -zxvf hbase-0.98.9-hadoop21.tar.gz cd hbase-0.98.9-hadoop2 |
4.3 配置HBase
进入HBase安装主目录,然后修改配置文件
cd /home/zzf/hbase-0.98.9-hadoop2/conf |
4.3.1 修改环境变量hbase-env. sh
使用下面的命令打开文件
gedit hbase-env.sh |
该文件的靠前部分有下面一行内容
#export JAVA_HOME=/usr/java/jdk1.6.0/ |
将该行内容修改为
export JAVA_HOME=/usr/java/jdk1.8.0_101/ |
4.3.2修改配置文件hbase-site.xml
用下面的内容替换原先hbase-site.xml中的内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
</configuration>
4.3.3设置regionservers
将regionservers中的localhost修改为下面的内容
slave |
4.3.4将HBase安装文件复制到HadoopSlave节点
使用下面的命令操作
cd scp -r hbase-0.98.9-hadoop2 slave:~/ |
4.4启动并验证HBase
进入HBase安装主目录,启动HBase
cd /home/zzf/hbase-0.98.9-hadoop2 bin/start-hbase.sh |
执行命令后会看到下面的打印输出
4.5 HBase Shell操作命令实验
进入HBase安装主目录,启动HBase,进入客户端
cd /home/zzf/hbase-0.98.9-hadoop2 bin/hbase shell |
查看列表
list |
创建表test
create ‘test’,{NAME=>‘f1’,version=>5} |
插入数据
put ‘test’,‘aid001’,‘f1:uid’,‘001’ |
扫描查询数据
scan ‘test’ |
单条查询数据
get ‘test’,‘aid001’ |
查看表结构
describe ‘test’ |
修改表
disable 'test’ alter ‘test’,NAME=>‘f1’,VERSION=>3 enable ‘test’ |
再次查看表结构进行对比
describe ‘test’ |
清空表
truncate ‘test’ |
扫描表
scan ‘test’ |
删除表
disable 'test’ drop 'test’ list |
创建新表uid_cnt
Create ‘uid_cnt’,{NAME=>‘f1’,VERSION=>5} |
五、实验结果与分析
HDFS命令:
启动并验证HBase:
打开Firefox浏览器,在地址栏中输入htttp://master:60010,会看到如下图的HBase管理页面,看到这些说明HBase已经启动成功
HBase Shell操作命令实验结果如图: