参考链接 http://wuyudong.com/archives/119?utm_source=tuicool
参考链接 http://www.cnblogs.com/archimedes/p/4531330.html
需要注意的地方:
首先要将conf/hbase-env.sh 参数配置本地启动为false (必须明确为false ,如果仅仅注释还是有问题)
export HBASE_MANAGES_ZK=false
zookeeper 按照下面的顺序配置是需要先安装zookeeper的,因为hbase1.0以后是需要另外先安装zookeeper的;
hadoop2.6和zookeeper3.4.6,hbase1.1.0.1是可以完全兼容的,不存在版本覆盖的问题,如果有提示,那就是配置错误,要细心检查参数;
每个主机的/hosts/里面的包括127.0.0.1这样的等等....要如数删除,不如zookeeper 可能会去寻找新IP,容易出问题,只要留下Master和相关节点;如
192.168.2.35 Master
192.168.2.36 Slave1
192.168.2.37 Slave2
1.下载地址为hbase-1.1.0.1-bin.tar.gz,总共98.1M,zookeeper 版本是3.4.6(zookeeper +hadoop 集群配置请查看http://www.cnblogs.com/canyangfeixue/p/4607120.html),官网下载当前3.4.6版本,
hadoop 为2.6.0版(集群配置过程请查看http://www.cnblogs.com/canyangfeixue/p/4576415.html).
2.在3台机器上配置的hadoop集群,Master:192.168.2.35, Slave1:192.168.2.36,Slave2:192.168.2.37 .我在Master机器上解压hbase-1.1.0.1-bin.tar.gz至/usr/local/目录下
tar -zxvf hbase-1.1.0.1-bin.tar.gz
3.配置环境变量,sudo vim /etc/profile,有人用/.bashrc 配置,也可以吧,不过我喜欢在profile里面,添加HBase 解压目录,path路径(path 和原来的hadoop 和jdk 的path 路径不必要放在一个path):
export HBASE_HOME=/usr/local/hbase-1.1.0.1
export PATH=$HBASE_HOME/bin:$PATH
进入conf 目录下面的,hbase-env.sh和hbase-site.xml,在hbase-env.sh里面添加jdk 安装路径
export JAVA_HOME=/usr/local/jdk1.7.0_80
在hbase-site.xml里面添加以下内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,Slave1,Slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper-3.4.6</value>
</property>
</configuration>
修改regionservers,将文件内容设置为:
Master
Slave1
Slave2
到这里本地的HBase环境安装完成,cd /usr/local/hbase-1.1.0.1 ,分别发送到2个slave的home/hadoop/目录下(因为直接复制到/usr/local/的权限不足),命令分别如下:
scp -r 192.168.2.36: /home/hadoop/
scp -r 192.168.2.37: /home/hadoop/
然后ssh进入每台机器,将hbase-1.1.0.1复制到/usr/local/目录下,记得核对每台机器的profile,jdk路径是否和hbase-env.sh下面的路径相同
,配置完成,如果zookeeper和hadoop正在运行,则关闭所有的hadoop 和zookeeper,如果条件允许,则重启所有机器.
启动hbase时要确保hdfs已经启动,HBase的启动顺序为:HDFS->Zookeeper->HBase,运行命令如下:
start-all.sh
bin/zkServer.sh start
bin/start-hbase.sh
用hadoop@Master:/usr/local/hbase-1.1.0.1$ ./bin/hbase shell命令进入HBase运行界面,
可以创建创建一个名为 test1
的表,这个表只有一个列为 cf。
其中表名、列都要用单引号括起来,并以逗号隔开。
=> []
hbase(main):002:0> create 'test', 'cf'
0 row(s) in 2.6380 seconds => Hbase::Table - test
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.5900 seconds hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0310 seconds hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0380 seconds hbase(main):006:0> list
TABLE
test
1 row(s) in 0.0270 seconds => ["test"]
hbase(main):007:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '', VERSIONS => '', COMPRESSION => 'NONE', MIN_VERSIONS => '', T
TL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
1 row(s) in 0.0980 seconds hbase(main):008:0> get 'test','row2'
COLUMN CELL
cf:b timestamp=1435579713449, value=value2
1 row(s) in 0.1780 seconds