【Apache HBase系列】HBASE 分布式安装

所需安装包:

hbase-0.94.1的安装包

安装流程:

1、配置hbase-env.xml

export JAVA_HOME=/usr/java/jdk1.6.0_37
export HBASE_MANAGES_ZK=true

2、配置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>dd1,dd2,dd3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
  • hbase.rootdir                                     设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机 
  • hbase.cluster.distributed                     设置为true,表明是完全分布式的hbase集群 
  • hbase.zookeeper.quorum                    设置zookeeper的主机,建议使用单数
  • hbase.zookeeper.property.dataDir        设置zookeeper的数据路径

3、配置regionservers

dd1
dd2
dd3

4、配置hadoop中的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...

5、删除hbase/lib包下面的hadoop-core-1.0.X.jar和commons-collections-3.2.1.jar,将hadoop目录下的core包和commons-collections-3.2.1.jar拷贝到hbase的lib下面 ---这个操作是为了保证hadoop和hbase的包的版本一致,以为出现一些类似版本不兼容的问题。

6、查看修改/etc/hosts是否绑定了127.0.0.1,如果有将其注释

下面是官网的说明

Before we proceed, make sure you are good on the below loopback prerequisite.

Loopback IP

HBase expects the loopback IP address to be 127.0.0.1. Ubuntu and some other distributions, for example, will default to 127.0.1.1 and this will cause problems for you.

/etc/hosts should look something like this:

            127.0.0.1 localhost
            127.0.0.1 ubuntu.ubuntu-domain ubuntu

这里说了hbase默认的会送地址是127.0.0.1,配置应该像上面这样,他这里添加了 127.0.0.1 localhost 这段。其实也可以直接不添加,把下面的这句话注释掉。问题就解决了! 


错误记录:
情况1:

2012-12-19 22:11:46,018 INFO org.apache.zookeeper.client.ZooKeeperSaslClient: Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not
be found. If you are not using SASL, you may ignore this. On the other hand, if you expected SASL to work, please fix your JAAS configuration.
2012-12-19 22:11:46,024 WARN org.apache.zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused

解决方法:

修改/etc/hosts

注释掉加粗的一行

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.130.170 master
192.168.130.168 dd1
192.168.130.162 dd2
192.168.130.248 dd3
192.168.130.164 dd4

7、各服务器时间间隔不同导致异常:Time difference of 39431466ms > max allowed of 30000ms

解决方法:
1).方案1
在hbase-site.xml添加配置

<property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
 </property>

2).方案2
修改各结点时间,使其误差在30s内
clock --set --date="10/29/2011 18:46:50"
clock --hctosys 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值