1.在namenode机器下,配置zookeeper,先解压安装包,使用命令:
tar -zxvf zookeeper-3.4.4.tar.gz
2.进入zookeeper的配置目录,首先把zoo_sample.cfg重命名一下,可以重新复制一遍,使用命令:
cp zoo_sample.cfg zoo.cfg
3.配置zoo.cfg
dataDir=/usr/local/zookeeper/dataDir
dataLogDir=/usr/local/zookeeper/dataLogDir
server.1 = ubuntu-131:7000:7001 (ubuntu-131:这是linux的hostname)
4、验证是否安装成功
./zkServer.sh status
返回图上所示,表示安装成功。
1.解压缩hbase的软件包,使用命令:
tar -zxvf hbase-0.94.2.tar.gz
2、进入hbase的配置目录,在hbase-env.sh文件里面加入java环境变量.即
export JAVA_HOME=/usr/lib/jvm/jdk1.8
加入变量,不使用Hbase自带的Zookeeper:
export HBASE_MANAGES_ZK=false
3、你确认HDFS安装成功之后,编辑hbase-site.xml ,添加配置文件:
hbase.rootdir
hdfs://192.168.124.131:9000/hbase
dfs.replication
1
hbase.cluster.distributed
true
hbase.zookeeper.quorum
ubuntu-131
hbase.master
192.168.124.131:60000
zookeeper.znode.parent
/hbase/master
4、拷贝zookeeper conf/zoo.cfg到hbase的conf/下。
5、在regionservers加入ubuntu-131 。(hostname)
搭建完集群之后,在hbase shell中查看表,出现error: KeeperErrorCode = NoNode for /hbase/master
1. 查看日志,是因为zookeeper启动后又自动关闭了。为什么会出现这个问题呢?是因为原来是因为zoo.cfg里的data目录是配置在/tmp下的,这目录是会定时清空的,因此,需要更改该目录,我的设置为/usr/local/work/zkdata。重新启动zookeeper。
2. 若问题还未解决,则可能是hbase中的zookeeper设置不成功。编辑hbase-2.1.0/conf/hbase-site.xml,加入配置:
因为远程hbase配置默认为/hbase路径。
3. 若问题还未解决,说明zookeeper未重启成功,删除zk数据目录下之前生成的version-2文件夹,即可。
4.总结:反正出现该问题,不是hbase本身问题,而是zookeeper的影响,因为zookeeper是监控整个hbase节点状态,控制hbase集群通信的重要工具。
1、bin目录下:
./start-hbase.sh
2、./hbase shell (进入hbase的shell界面)
3、status命令测试是否成功:
返回如上说明服务启动成功。如果启动失败,注意查看相关日志,找出失败原因。
4、简单命令操作:
创建一个名为 test
的表,这个表只有一个 列族 为 cf
。可以列出所有的表来检查创建情况,然后插入些值。
hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds
Scan这个表,操作如下
hbase(main):007:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
Get一行,操作如下
hbase(main):008:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
disable 再 drop 这张表,可以清除你刚刚的操作
hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds
关闭shell
hbase(main):014:0> exit