• HBase 系列(二)安装部署


    HBase 系列(二)安装部署

    本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境。HBase 也有三种模式:本地模式、伪分布模式、分布模式。

    一、环境准备

    (1) HBase 下载

    HBase 下载地址:http://archive.apache.org/dist/hbase/

    (2) SSH 服务

    service sshd status
    

    参考:http://www.cnblogs.com/binarylei/p/9049149.html

    (3) 域名系统 DNS

    /etc/hosts
    

    (4) 本地环回地址

    127.0.0.1 localhost
    

    (5) 时间同步

    ntp
    

    (6) 资源限制命令

    # 限制用户打开的文件数
    soft nofile 10240
    hard nofile 10240
    
    # 限制用户打开的进程数
    soft noproc 10240
    hard noproc 10240
    

    (7) Hadoop 版本选择

    本文以 Hadoop-2.7.6,HBase-1.4.5。并且将 $HBASE_HOME/lib 下的有关 hadoop 的 jar 包替换成 $HADOOP_HOME/share/... 的 jar 包。

    <!-- hadoop 的 datanode 配置项,设置同时处理文件的上限个数,默认 256,至少是 4096,甚至更大 -->
    <property>
        <name>dfs.datanode.max.xcievers</name>
        <value>4096</value>
    </property>
    

    (8) 安装 Zookeeper

    最好以 hadoop 用户启动。参考:http://www.cnblogs.com/binarylei/p/8721129.html

    二、HBase 运行模式

    2.1 本地模式

    (1) 解压后添加环境变量

    vi /etc/profile.d/start.sh
    
    # hbase
    export HBASE_HOME=/home/hadoop/habase
    export PATH=$PATH:$HBASE_HOME/bin
    

    (2) 修改 conf/hbase-env.sh

    JAVA_HOME=/usr/local/jdk
    export HBASE_MANAGES_ZK=false   # 不使用自带的 zookeeper
    

    (3) 修改 conf/hbase-site.xml

    <property>
        <name>hbase.rootdir</name>
        <value>file:/home/hadoop/hbase/HFiles</value>
    </property>
    

    2.2 伪分布模式

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8030/hbase</value>
    </property>
    

    2.3 分布模式

    (1) 修改 conf/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>192.168.2.110:2181,192.168.2.111:2181,192.168.2.111:2181</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/home/hadoop/hbase/data/zookeeper</value>
        </property>
        <property>
            <name>hbase.tmp.dir</name>
            <value>/home/hadoop/hbase/data</value>
        </property>
        <!-- web 页面端口,默认16010 -->
        <property>
            <name>hbase.master.info.port</name>
            <value>60010</value>
        </property>
    </configuration>
    

    (2) 修改 conf/regionservers

    192.168.140.110
    192.168.140.111
    

    (3) 分发

    scp -r /home/hadoop/hbase-1.4.5 hadoop@192.168.140.110:`pwd` 
    ssh root@192.168.140.110 'ln -sv /home/hadoop/hbase-1.4.5 /home/hadoop/hbase'
    ssh root@192.168.140.110 'chown -h -R hadoop:hadoop /home/hadoop/hbase'
    

    (4) 启动

    bin/start-hbase.sh
    

    (5) HBase 高可用

    bin/hbase-daemon.sh start master
    bin/hbase-daemons.sh start regionserver
    

    查看 WEB 页面:

    HMaster:http://192.168.140.110:60010/master-status
    HRegionServer:http://192.168.140.110:16030/master-status

    HBase Shell 查看 HBase 状态:

    create 't1', {NAME => 'f1', VERSIONS => 5}
    describe 't1'
    
    put 't1', 'row1', 'f1:a', '2'
    put 't1', 'row2', 'f1:b', '3'
    get 't1', 'row1'
    scan 't1'
    
    disable 't1'
    drop 't1'
    

    三、HBase 和 Hadoop 的 HA 集成

    (1) 在 $HBASE_HOME/hbase-env.sh 文件添加 hadoop 配置文件目录到 HBASE_CLASSPATH 环境变量并分发

        vi $HBASE_HOME/hbase-env.sh
    
        export HBASE_CLASSPATH=$HBASE_CLASSPATH:$HADOOP_HOME/etc/hadoop
    

    (2) 在 $HBASE_HOME/conf/ 目录下创建到 hadoop 的 hdfs-site.xml 符号连接

        $>ln -s $HADOOP_HOME/etc/hadoop/hdfs-site.xml $HBASE_HOME/conf/hdfs-site.xml
    

    (3) 修改 $HBASE_HOME/hbase-site.xml 文件中 hbase.rootdir 的目录值

        vi $HBASE_HOME//hbase-site.xml
    
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://mycluster/hbase</value>
        </property>
    

    (4) 将以上步骤分发处理

    四、踩过的坑

    问题1:ERROR: Can't get master address from ZooKeeper; znode data == null

    解决:在 hbase-site.xml 指定一个运行 hbase 的用户有写入文件权限的目录作为 zookeeper 数据目录,如

    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hadoop/hbase/data/zookeeper</value>
    </property>
    

    参考:https://www.cnblogs.com/zlslch/p/6556870.html


    每天用心记录一点点。内容也许不重要,但习惯很重要!

  • 相关阅读:
    python闭包和装饰器
    Redis订阅与发布
    Redis压缩列表
    Linux操作系统--定时任务
    python模块--zipfile文件压缩
    Xshell工具使用--连接VMware虚拟机
    Django数据库--事务及事务回滚
    HTTP长连接--Keep-Alive
    MySQL触发器
    Kasaraju算法--强连通图遍历及其python实现
  • 原文地址:https://www.cnblogs.com/binarylei/p/9314540.html
Copyright © 2020-2023  润新知