zoukankan      html  css  js  c++  java
  • 在Hadoop上安装HBase

    Hbase快速安装

    1.准备工作

    1.1 确保已经正确安装hadoop

    详情可以参考我的一篇基于集群资源管理Mesos的hadoop安装教程

    地址: 《Mesos上安装Hadoop超详细部署攻略》

    1.2 我的配置说明

     

    1.3 基本说明

      我的所有程序均在hadoop用户下进行(除非必须要用root才切换),所有的安装解压均在hadoop主目录。

          有任何问题,都以官方文档为准:http://hbase.apache.org

    2.下载并且解压

    2.1 选择适合自己的Hbase版本

       官方文档给出的对照关系如下

    我的hadoop是0.20.205的所以我选择了hbase-0.92.x的版本

    2.2 下载解压

    wget http://mirror.bjtu.edu.cn/apache/hbase/hbase-0.92.2/hbase-0.92.2.tar.gz
    
    tar -zxvf  hbase-0.92.2.tar.gz

    3.配置

    3.1 方便使用,先添加环境变量

    在root下执行
    
    vi /etc/profile
    
    export HBASE_HOME=/home/hadoop/hbase-0.92.2
    
    export path=$PATH:/home/hadoop/hbase-0.92.2/bin
    
    保存后
    
    source /etc/profile

    3.2 配置$HBASE_HOME/conf/hbase-env.sh

    我仅修改了JAVA_HOME其他根据需要可自己设定。意思里面都有
    
    export JAVA_HOME=/usr/java/jdk1.6.0_43

    export HBASE_MANAGES_ZK=true (这句要自己加,表示使用hbase自带的zookeeper)

    3.3 配置 $HBASE_HOME/conf/hbase-site.xml

    拷贝hbase的模板到conf下
    
    cp -f $HBASE_HOME/src/packages/conf-pseudo/hbase-site.xml $HBASE_HOME/conf

    添加如下内容

    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://mastersrv:54310/hbase</value>
    </property>
    
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    
    
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>slavesrv1,slavesrv2,slavesrv3</value>
    </property>
    
    
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hadoop/hbase-zoo-dataDir</value>
    </property>
    
    
    <property>
          <name>hbase.master.port</name>
          <value>60000</value>
    </property>

    所有属性的含义可见中文官方文档 2.3.1.1 hbase默认配置

    http://abloz.com/hbase/book.html

     注意:hbase.rootdir  的值要和hdfs-site.xml里面相同。(后面的hbase无妨,它自己会建的)

    3.4 配置hadoop节点上的 hdfs-site.xml

    引用:http://www.cnblogs.com/hanyuanbo/archive/2012/07/28/2612886.html 

    vi $HADOOP_HOME/conf/hdfs-site.xml
    
    <property> 
    <name>dfs.datanode.max.xcievers</name> 
    <value>4096</value> 
    </property>
    
    该参数限制了datanode所允许同时执行的发送和接受任务的数量,缺省为256,hadoop-defaults.xml中通常不设置这个参数。这个限制看来实际有些偏小,高负载下,DFSClient 在put数据的时候会报 could not read from stream 的 Exception。

    官方说法:

    An Hadoop HDFS datanode has an upper bound on the number of files that it will serve at any one time. The upper bound parameter is called xcievers (yes, this is misspelled). 

    Not having this configuration in place makes for strange looking failures. Eventually you'll see a complain in the datanode logs complaining about the xcievers exceeded, but on the run up to this one manifestation is complaint about missing blocks. For example: 10/12/08 20:10:31 INFO hdfs.DFSClient: Could not obtain block blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.io.IOException: No live nodes contain current block. Will get new block locations from namenode and retry...

    3.5 $HBASE_HOME/conf/regionservers 

    vi regionservers 
    
    slavesrv1
    slavesrv2
    slavesrv3

    3.6 将 hadoop-core-0.20.205.0.jar拷贝到hbase中

    这步可能不是必须的,因为怕发生版本之间承接的问题,所以我就直接先做了这个处理。
    
    cp $HADOOP_HOME/hadoop-core-0.20.205.0.jar $HBASE_HOME/lib
    
    
    将原来的jar移到其他地方去
    mv $HBASE_HOME/lib/hadoop-core-1.0.3.jar ~/myfile

    4.将配置好的目录全部传送到其他节点

    scp -r ~/hbase-0.92.2 hadoop@slavesrv1:~/
    scp -r ~/hbase-0.92.2 hadoop@slavesrv2:~/
    scp -r ~/hbase-0.92.2 hadoop@slavesrv3:~/

    5.同步系统时间(系统时间不同步会出错哦)

    在所有机器上执行以下操作

    安装NTP服务
    
    yum install ntp
    
    在root下启动服务
    
    service ntpd start
    
    在各台机器上用date快速查看下。应该是一样的了。(同步可能花些时间,最长不超过5分钟)

    6.启动完成安装

    6.1  首先确保hadoop至少已经执行了 start-dfs.sh 并且运行正常

          jps命令查看主节点有 NameNode SecondaryNameNode  从节点上有 DataNode

    6.2 开启hbase

    start-hbase.sh

    成功启动后会有如下进程

    mastersrv:

    slavesrvX:

    6.3 查看浏览器管理界面

    zookeeper的情况

    http://192.168.4.100:60010/zk.jsp

       master的情况

       http://192.168.4.100:60010/master-status

     下图看看regionServer是否都正常开启

    查看regionServer的情况

    http://192.168.4.101:60030/rs-status

    http://192.168.4.102:60030/rs-status

    http://192.168.4.103:60030/rs-status

    总结:基本顺利,碰到2次问题,比较快的解决了,按照这样的方式装下来肯定没问题。

  • 相关阅读:
    [Powershell]导出指定的定时计划任务
    [Powershell]发布基于.NET Framework的WebAPI和Job控制台程序项目
    [Powershell]使用Msbuild构建基于.NET Framework的WebAPI项目
    [最新].NET Core ORM 开源项目一览,持续更新
    【最新】Xmanager Power Suite 6.0 Build 0017
    Git抽取版本之间的差异,打包解压
    PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取
    PostgreSql之在group by查询下拼接列字符串
    同事问如何判断同花顺,我用javascript的二维数组写了个简易demo
    Gitlab定义安全变量遇到无法转义的字符——感叹号
  • 原文地址:https://www.cnblogs.com/neverwinter/p/2985798.html
Copyright © 2011-2022 走看看