在Hadoop2.X上搭建Hbase

默认Hadoop2.X以及Java JDK都已安装好。首先解压文件hbase-0.98.23-hadoop2-bin.tar.gz:

tar -zxvf hbase-0.98.23-hadoop2-bin.tar.gz
mv hbase-0.98.23-hadoop2 ~/

接下来要修改以下四个文件:
/etc/profile
~/hbase-0.98.23-hadoop2/conf/hbase-env.sh
~/hbase-0.98.23-hadoop2/conf/hbase-site.xml
~/hbase-0.98.23-hadoop2/conf/regionservers

step1:
在/etc/profile末尾加上:

#configure HBase
export HBASE_HOME=/home/xu/hbase-0.98.23-hadoop2(根据用户实际情况修改)
export PATH=$PATH:$HBASE_HOME/bin

然后运行source /etc/profile使其生效。

step2:
修改~/hbase-0.98.23-hadoop2/conf/hbase-env.sh (根据用户实际情况修改):

#默认pid存在tmp里,容易丢失发生mater-pid not found等错误
export HBASE_PID_DIR=/var/hbase/pids

# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/usr/local/java/jdk1.7.0_51

# Extra Java CLASSPATH elements.  Optional.
export HBASE_CLASSPATH=/usr/local/hadoop-2.7.2/etc/hadoop

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

step3:
修改~/hbase-0.98.23-hadoop2/conf/hbase-site.xml :
在configuration之间加上:

//指定Hbase在HDFS中写数据的路径
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://master:9000/hbase</value>   (根据用户实际情况修改)
</property>
//指定Hbase以分布式方式运行
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>master,slave01,slave02</value>     (根据用户实际情况修改)
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/usr/local/zookeeper</value>
</property>

step4:
修改~/hbase-0.98.23-hadoop2/conf/regionservers:
删掉localhost,然后加上希望做regionserver节点的hostname或IP address,例如:
master
slave01
slave02

step5:
hbse的lib文件夹中自带hadoop的jar包,是为了standalone模式准备的,在真实分布式环境中最好替换为集群安装hadoop的版本jar包(虽然原先我没替换的时候也没有发生bug,不过官网都说了要换就换呗),下面是自己写的一个shell脚本,自学一天,班门弄斧,出事故了别砍我:

#!/bin/bash
#param1是hbase的lib目录路径(一般是/hbase/lib) param2是hadoop的lib目录路径(一般是/hadoop/share/hadoop)

hbaseLib=$1
hadoopLib=$2

if [ -d $hbaseLib -a -d $hadoopLib ]
then
    num=0
    for path in `find $hbaseLib -type f -name "hadoop*.jar"`
    do
      hbaseJars[$num]=${path##*/}
      hbaseJarPath[$num]=$path
      num=`expr $num + 1`
    done
    num=0
    for path in `find $hadoopLib -type f -name "hadoop*.jar"`
    do
      hadoopJars[$num]=${path##*/}
      hadoopJarPath[$num]=$path
      num=`expr $num + 1`
    done

    hbaseIndex=0
    hadoopIndex=0
    for hbaseJar in ${hbaseJars[*]}
    do
      hbaseJarPrefix=${hbaseJar%-*}
      for hadoopJar in ${hadoopJars[*]}
      do
        if [ "$hbaseJarPrefix" = "${hadoopJar%-*}" ]
        then
            rm ${hbaseJarPath[$hbaseIndex]}
            cp -i ${hadoopJarPath[$hadoopIndex]} $hbaseLib
            break 1
        fi
        hadoopIndex=`expr $hadoopIndex + 1`
      done
      hbaseIndex=`expr $hbaseIndex + 1`
      hadoopIndex=0
    done
fi

以上步骤结束后通过scp命令将hbase-0.98.23-hadoop2目录拷贝到其他节点,例如:

scp -r  ~/hbase-0.98.23-hadoop2 username@slave01:~/
scp -r  ~/hbase-0.98.23-hadoop2 username@slave02:~/

另外别忘了同样修改其他节点上的/etc/profile文件,并使其生效。

最后,大功告成,运行start-hbase.sh:
这里写图片描述

用jps查看是否正常:
master:
master-jps
其中Hmaster、HRegionServer、HQuorumPeer均为Hbase进程

slave:
这里写图片描述
其中HRegionServer、HQuorumPeer为Hbase进程。

新司机上路,不吝赐教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值