4.安装zookeeper&hbase

安装zookeeper

1.(master)将zookeeper 安装包 解压到/opt目录下 重命名为zookeeper

2.将conf下的模板文件zoo_sample.cfg 复制一份 命名:zoo.cfg

$cp conf/zoo_sample.cfg conf/zoo.cfg

3.编辑zoo.cfg文件

在最底下加入(顺序:服务器地址,服务器编号,LF通信端口,选举端口)

server.1=master:2888:3888
server.2=slave0:2888:3888
server.3=slave1:2888:3888

4.安装zookeeper&hbase

4.创建节点标识文件

$mkdir -p /tmp/zookeeper
$vi /tmp/zookeeper/myid

内容为对应服务器编号

master为zoo.cfg文件中的1
    slave0 为zoo.cfg文件中的2
    slave1 为zoo.cfg文件中的3

5.将zookeeper文件复制到两台子服务器中

$scp -r zookeeper copy-master@slave0:/opt/
$scp -r zookeeper copy-master@slave1:/opt/
  1. 启动测试

分别启动服务器中的启动文件

$bin/zkServer.sh start

启动后 查看服务器集群状态

$bin/zkServer.sh status
    显示 Mode:leader为主机
    显示 Mode : follower为子机

安装HBASE

为了防止master跟slave时间不同步导致 hbase无法启动问题,先将时间同步为master时间

$vi /etc/ntp.conf

增加

server  master

![图片描述][2]

1.将hbase解压到/opt下并重命名 hbase

2.配置hbase

1.编辑conf/hbase-env.sh

$vi conf/hbase-env.sh
    1.修改JAVA_HOME路径为:
    export JAVA_HOME=/usr/lib/jvm/java/
    2.修改HBASE_CLASSPATH路径为:
    export HBASE_CLASSPATH=$HBASE_HOME/conf
    3.修改zookeeper为false (hbase默认启动自带的zookeeper 改为false 是变更到使用自己装的zookeeper去)
    export HBASE_MANAGES_ZK=false

2.将安装的zookeeper中conf/zoo.cfg文件复制到hbase/conf目录下

$cp zookeeper/conf/zoo.cfg hbase/conf/

3.修改配置文件hbase-site.xml

$vi conf/hbase-site.xml 
    内容为:
    <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>

            <property>

                    <name>hbase.master.info.port</name>

                    <value>60010</value>

            </property>

    </configuration>

4.设置regionservers

编辑config/regionservers

$vi conf/regionservers
        内容为集群地址:
        slave0
        slave1

5.设置环境变量(master/slave0/slave1都需要 三个环境变量是相同的,可以使用scp同步过去)

$vi ~/.bash_profile
        增加内容
        #HBASE

        export HBASE_HOME=/opt/hbase

        export PATH=$PATH:$HBASE_HOME:bin

        export HADOOP_CLASSPATH=$HBASE_HOME/lib/*

刷新环境变量

$source ~/.bash_profile

6.将hbase复制到slave0,slave1

$scp -r hbase copy-master@slave0:/opt/
$scp -r  hbasecopy-master@slave1:/opt/

3.启动hbase集群 (master)

$bin/start-hbase.sh
master使用jps查看进程
    HMaster 为HBase进程
slave使用jps查看进程
    HRegionserver为sHBase进程
    
如出现错误 查看 对应未启动机器的logs/下日志


我出现如下错误

启动一直启动不了 

Using config: /opt/zookeeper/bin/../conf/zoo.cfg 

Error contacting service. It is probably not runnin

使用 lsof -i:2181 检查2181端口是否被占用 占用清理掉 在启动就ok(我遇到的是这样解决的)


也会出现主子服务器时间不同步导致子服务器无法启动问题

4.常用命令

1.进入hbase命令模式
    $bin/hbase shell
    创建 : create 'test1','f12'
    查看列表 : list
    插入数据: put 'test1','id001','f1:uid','001'  //id001为行健,f1是列族名,uid是属性名  001为属性值
    查询数据: scan 'test1'
    查看表结构:describe 'test1'
    删除表(需要两条命令):disable 'test1'  
                            drop 'test1'

zookeeper再次启动失败问题

运行zookeeperd后显示启动成功:

JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

但用zkServer.sh status查看,反馈如下:

JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

如果遇到这种情况 检查2181端口是否被占用
lsof -i:2181

如果被占用 kill掉 然后重启即可

相关推荐