伪分布式模式安装HBase和ZooKeeper

第一步:安装单机ZooKeeper

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

返回图上所示,表示安装成功。 

第二步:安装Hbase

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)

第三步:启动报错error: KeeperErrorCode = NoNode for /hbase/master

搭建完集群之后,在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.unsafe.stream.capability.enforce
        false
    

因为远程hbase配置默认为/hbase路径。

3. 若问题还未解决,说明zookeeper未重启成功,删除zk数据目录下之前生成的version-2文件夹,即可。

4.总结:反正出现该问题,不是hbase本身问题,而是zookeeper的影响,因为zookeeper是监控整个hbase节点状态,控制hbase集群通信的重要工具。

第四步启动:

1、bin目录下:

./start-hbase.sh

2、./hbase shell (进入hbase的shell界面)

伪分布式模式安装HBase和ZooKeeper_第1张图片

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

你可能感兴趣的:(大数据)