• CentOS 6.7安装HBase 0.98.23


    之前已经在CentOS 6.7上安装部署Hadoop 2.7.2http://blog.csdn.net/noob_f/article/details/53366756)、ZooKeeper 3.4.9http://blog.csdn.net/noob_f/article/details/53391298),并正常启动Hadoop集群。


    master

    [root@master ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/0.98.23/hbase-0.98.23-hadoop2-bin.tar.gz
    [root@master ~]# tar zxvf hbase-0.98.23-hadoop2-bin.tar.gz
    [root@master ~]# mv hbase-0.98.23-hadoop2 /usr/local/
    

    [root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/conf/hbase-env.sh

    修改

    # export JAVA_HOME=/usr/java/jdk1.6.0/

    export JAVA_HOME=/usr/local/jdk1.7.0_79/

    • 注:
    # Tell HBase whether it should manage it's own instance of Zookeeper or not.
    # export HBASE_MANAGES_ZK=true
    

    ZooKeeper的HBASE_ MANAGES_ZK配置项,该项表示是否使用HBase管理其自带的ZooKeeper。如果取消注释,并设置其值为true,将使用自带的ZooKeeper,这样就不需要再单独下载ZooKeeper并做相应配置了。我之前安装部署了ZooKeeper,所以不取消注释。


    [root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/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,slave</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/usr/local/zookeeper-3.4.9</value>
        </property>
        <property>
            <name>hbase.master</name>
            <value>master:60000</value>
        </property>
    </configuration>
    

    保存退出

    • hbase.rootdir设置为HDFS的NameNode的位置。
    • 属性hbase.zookeeper.quorum:该属性的值会让HBase启动时在相应节点上运行ZooKeeper实例。

    [root@master ~]# vi /usr/local/hbase-0.98.23-hadoop2/conf/regionservers
    • 删掉默认的localhost,并添加想要运行RegionServer的节点名

    内容修改为

    slave

    保存退出

    • 删掉localhost的原因是并不想在Hadoop的namenode上运行RegionServer。因为namenode上并不存储HDFS数据,运行RegionServer需要远程调用数据,同时也会加重namenode的负担。如果一定要在namenode上运行RegionServer,也应该把localhost换成相应的机器名,如master。因为HBase也可以通过在其他节点上运行start-hbase.sh脚本启动(这时会把输入命令的节点作为master节点),这时localhost指的是本机节点而不是namenode。

    设置HBase环境变量

    [root@master ~]# vi /etc/profile.d/hbase.sh

    添加

    export HBASE_HOME=/usr/local/hbase-0.98.23-hadoop2
    export PATH=$HBASE_HOME/bin:$PATH
    export HADOOP_CLASSPATH=$HBASE_HOME/lib/*
    

    保存退出

    [root@master ~]# source /etc/profile.d/hbase.sh

    [root@master ~]# rsync -av /usr/local/hbase-0.98.23-hadoop2 slave:/usr/local/
    [root@master ~]# rsync -av /etc/profile.d/hbase.sh slave:/etc/profile.d/
    

    slave

    [root@slave ~]# source /etc/profile.d/hbase.sh

    master

    [root@master ~]# /usr/local/hbase-0.98.23-hadoop2/bin/start-hbase.sh

    使用Web UI界面查看启动情况:在地址栏中输入master:60010,会看到HBase管理界面,看到这些表明HBase已经启动成功。

    [root@master ~]# jps
    3285 SecondaryNameNode
    3536 ResourceManager
    9826 QuorumPeerMain
    10470 HMaster
    3127 NameNode
    10794 Jps
    

    slave

    [root@slave ~]# jps
    2929 DataNode
    8071 QuorumPeerMain
    8470 HRegionServer
    3037 NodeManager
    8747 Jps
    

    master

    停止HBase

    [root@master ~]# /usr/local/hbase-0.98.23-hadoop2/bin/stop-hbase.sh
  • 相关阅读:
    各种sensor名称统计
    数组指针和指针数组的区别
    自己写一个线程池
    git命令总结
    用链表实现队列的功能
    一个free的问题
    生产者消费者问题--进阶2
    影响架构决策的非功能性需求
    从商业角度探讨API设计
    给公司部门设计的SOA架构
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/8304707.html
Copyright © 2020-2023  润新知