一、Hbase简介
HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群。
HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用Hadoop HDFS 作为其文件存储系统;Google 运行MapReduce 来处理Bigtable中的海量数据, HBase 同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable 利用Chubby作为协同服务, HBase 利用Zookeeper作为对应。
二、Hbase安装步骤
1、HBase单击版(standalone)安装(以hbase-1.1.3-bin.tar.gz为例,node5中)
1)上传至Linux
2)解压
tar -zxvf hbase-1.1.3-bin.tar.gz
3)hbase-env.sh中配置JAVA_HOME,内容为
export JAVA_HOME=/usr/java/jdk1.7.0_79
4)配置hbase-site.xml,内容为
<property> <name>hbase.rootdir</name> <value>file:///opt/data/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/opt/data/zkData</value> </property>
5)启动
cd /opt/sxt/soft/hbase-1.1.3 bin/start-hbase.sh
6)检查
通过输入jps,可以查看到HMaster进程
7)进入HBase命令控制行
bin/hbase shell
可以通过输入help来查看所有命令
注:(1)HBase的启动必须要启动zookeeper,但其自身就带有,所以单机版HBase启动不需要搭建启动zookeeper集群
(2)启动单机版HBase时,不要在外面启动zookeeper
(3)修改配置文件通知HBase启动自带的zookeeper,修改hbase-env.sh
export HBASE_MANAGES_ZK=true
2、分布式HBase集群安装(四台机器,node5、node6、node7、node8,其中node8用来配置备用master,可以不配)
1)HBase集群启动前提
(1)Hadoop集群要启动正常
start-all.sh
(2)Zookeeper集群启动正常
zkServer.sh start zkServer.sh status
2)配置hbase-site.xml,内容为
// 其中hbase.rootdir的值为配置的hadoop中的fs.defaultFS的值 // 通过vi /home/hadoop-2.5.1/etc/hadoop/core-site.xml查看 <property> <name>hbase.rootdir</name> <value>hdfs://zxl/hbase</value> // 如果对于配置的是单节点的hdfs,则可以如下配置 // <value>hdfs://node5:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>node5,node6,node7</value> </property>
3)配置regionservers,内容为
node5 node6 node7
配置backup-masters(此步可以不配置,配置备用master节点)
node84)将hadoop配置文件夹地址配置到hbase-env.sh
(1)将export HBASE_MANAGES_ZK注释去掉,配为false(默认为true)
// 表示不使用内置zookeeper export HBASE_MANAGES_ZK=false
(2)将export HBASE_CLASSPATH注释去掉,并配置
export HBASE_CLASSPATH=/home/hadoop-2.5.1/etc/hadoop
(3)将export JAVA_HOME注释去掉,并配置
export JAVA_HOME=/usr/java/jdk1.7.0_79
5.将hbase整个文件拷贝(分发)至node6和node7中
scp -r /opt/sxt/soft/hbase-1.1.3 root@node6:/opt/sxt/soft/ scp -r /opt/sxt/soft/hbase-1.1.3 root@node7:/opt/sxt/soft/ // 如配备用master scp -r /opt/sxt/soft/hbase-1.1.3 root@node8:/opt/sxt/soft/
6)配置hbase的环境变量(单机版也可以配置),vi ~/.bash_profile,内容为
export HBASE_HOME=/opt/sxt/soft/hbase-1.1.3 export PATH=$PATH:$HBASE_HOME/bin
保存后source ~/.bash_profile
7)启动
start-hbase.sh
8)测试
(1)浏览器访问:node5:16010(页面显示正常,即搭建成功)
(2)进入命令行控制台:hbase shell
三、简单示例
hbase下退格需要按ctrl加上退格键,没有删除数据,只有版本更新
create ‘t1’, ‘f1’, ‘f2’, ‘f3’ //t1为表名,f1,2,3为列族 desc 't1' //查看表t1的信息 put 't1', '123', 'f1:name', 'zs' //t1,表名;123,row key;name,列族f1的列名 put 't1', '123', 'f1:sex', '1' get 't1','123','f1' alter 't1', { NAME => 'f1', VERSIONS => 3 } //修改列族的版本 put 't1', '123', 'f1:sex', '2' get 't1','123',{COLUMN => 'f1:sex' , VERSIONS => 3} //获取f1:sex三个版本的值 put 't1', '123', 'f2:sex', '2' scan ‘t1’ //查看表t1的信息 flush ‘t1’ //将memstore的内容输入到物理storefile中 drop ‘t1’ //此时drop不了,必须把表先改为disable disable ‘t1’此时可以通过浏览器查看存储情况:node5:50070,路径为:
/hbase/data/default即可看到t1表
注:如果对某个命令不熟悉,直接输入该命令,如输入get,会获得get的使用语法