搜索
您的当前位置:首页正文

Hadoop+Hbase+ZooKeeper 安装配置及需要注意的事项

来源:易榕旅网


本文重点讲解Hbase的安装、配置、问题解决

关于hadoop和zookeeper的安装配置及相关问题,可以参考:

hadoop:

zookeeper:

 

测试环境

三系统均为  Ubuntu11.04,分别是:

 

frank-1(主机名:即hostname):192.168.0.100   masters-----namenode
frank-2(主机名:即hostname):192.168.0.102   slaves-------datanode

frank-3(主机名:即hostname):192.168.0.103   slaves-------datanode

 

 

 

要求

 

以下是安装使用hbase所要遵守的要求,如果不这样做的话,会产生不可预知的异常、错误、数据丢少等问题(当然,有可能会成功)。

 

1、JDK

     这个不用说了,必须的(jdk6以上)

2、hadoop

     必须正确的安装和配置,可参考(要注意:版本问题)

 

     版本问题,这是一个非常重要的问题,一定要重视它,否则会很杯具。我就是因为这个整了好几个小时(当然还包括其他的问题)。

     This version of HBase will only run on . It will not run on hadoop 0.21.x (nor 0.22.x). HBase will lose data unless it is running on an HDFS that has a durable sync. Currently only the  branch has this attribute[]. No official releases have been made from this branch up to now so you will have to build your own Hadoop from the tip of this branch. Michael Noll has written a detailed blog, , on how to build an Hadoop from branch-0.20-append. Recommended.

     以上是官方文档中的叙述,只看到了.,所以刚开始用了hadoop-0.20.0,经测试是不可以的,hadoop-0.20.2测试成功(当然这里的hbase版本是0.90.2,其他的版本的情况就不清楚了)。

3、SSH

    也是必须的,上面hadoop的安装过程中提到。

4、DNS

     即:各节点的主机名与IP设置,在hadoop配置中也提到。

     如果,不是hosts中配置的服务器,还可以通过hbase.regionserver.dns.nameserver来另外指定。(这是在hbase-site.xml中配置)

5、NTP

    所有节点的时间校准。(网上有很多资料,这里省略)

6、ulimit and nproc(所有节点均要设置)

    默认的大小是1024,以Ubuntu为例:

    在/etc/security/limits.conf文件中增加以下配置:

    hadoop      -            nofile      32768

    hadoop      hard      nproc      32000

    hadoop      soft       nproc      32000

    在/etc/pam.d/common-session文件中增加下面配置,否则上面的配置不启作用:

    session      required       pam_limits.so

7、在/home/frank/HadoopInstall/hadoop-config/hdfs-site.xml文件中增加配置:

     <property>

<name>dfs.datanode.max.xcievers</name>

<value>4096</value>

</property>

8、ZooKeeper(使用单独的zookeeper,并非hbase自带的zookeeper)

zookeeper的安装配置可参考

     其中,zoo.cfg的配置如下:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/home/frank/ZooKeeperInstall/data

# the port at which the clients will connect

clientPort=2222

 

server.1=192.168.0.100:2888:3888

server.2=192.168.0.102:2888:3888

server.3=192.168.0.103:2888:3888

 

 

安装

 

    解压完成后建立链接(好处就不多说了):$ ln -s hbase-0.20.2 hbase

 

配置(以下是按照集群的方式配置的,单机的配置可参考网上资料)

 

1、修改conf/hbase-env.sh

export JAVA_HOME=/home/frank/JavaInstall/jdk

export HBASE_CLASSPATH=/home/frank/HadoopInstall/hadoop/conf

export HBASE_MANAGES_ZK=false

 

2、修改hbase-site.xml,增加以下内容

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://frank-1:9000/hbase</value>

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

    <property>

      <name>hbase.zookeeper.property.clientPort</name>

      <value>2222</value>

      <description>Property from ZooKeeper's config zoo.cfg.

      The port at which the clients will connect.

      </description>

    </property>

其中:

 

hbase.rootdir:“hdfs://frank-1:9000”这部分必须和hadoop-config/core-site.xml中的fs.default.name保持一致;

hbase.zookeeper.property.clientPort,是由于我在zoo.cfg中修改了默认的clientPort,所以在这里要设置,缺省是2181

 


3、把/home/frank/HadoopInstall/hadoop-config/hdfs-site.xml文件拷贝至hbase的conf文件夹下

 

4、把${ZOOKEEPER_HOME}/conf/zoo.cfg拷贝至hbase的conf文件夹下

 

5、在conf/regionservers中添加hadoop-config/conf/slaves中所有的datanode节点。

 

6、删除/hbase-0.90.2/lib/hadoop-core-0.20-append-r1056497.jar

     拷贝/hadoop-0.20.2/hadoop-0.20.0-core.jar到/hbase-0.90.2/lib/

 

7、最后,把配置好的hbase-0.20.2,拷贝到其它节点 scp

 

运行

 

Hadoop、ZooKeeper和HBase之间应该按照顺序启动和关闭:启动Hadoop—>启动ZooKeeper集群—>启动HBase—>停止HBase—>停止ZooKeeper集群—>停止Hadoop。

执行bin/start-hbase.sh和bin/stop-hbase.sh 脚本启动和停止HBase服务。

 

测试

 

可进入hbase shell,测试:


list  列出所有表

create 建表,如 create 'test','data'

put 插入数据

...(关于hbase的操作可参考网上资料)


因篇幅问题不能全部显示,请点此查看更多更全内容

Top