您的位置:首页 > 运维架构

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

2012-03-07 11:22 681 查看
转自:http://blog.csdn.net/FranklySun/article/details/6443027

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

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

hadoop:http://blog.csdn.net/FranklySun/archive/2011/05/13/6417984.aspx

zookeeper:http://blog.csdn.net/FranklySun/archive/2011/05/16/6424582.aspx

测试环境

三系统均为 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

必须正确的安装和配置,可参考http://blog.csdn.net/FranklySun/archive/2011/05/13/6417984.aspx(要注意:版本问题)

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

This version of HBase will only run on Hadoop 0.20.x. 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-0.20-append 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, Building an Hadoop 0.20.x version for HBase 0.90.2, on how to
build an Hadoop from branch-0.20-append. Recommended.

以上是官方文档http://hbase.apache.org/book/notsoquick.html中的叙述,只看到了Hadoop
0.20.x.,所以刚开始用了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的安装配置可参考http://blog.csdn.net/FranklySun/archive/2011/05/16/6424582.aspx

其中,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

安装

很简单,下载hbase-0.20.2.tar.gz, 解压到预设目录即可。我的目录:/home/frank/HBaseInstall/

解压完成后建立链接(好处就不多说了):$ 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的操作可参考网上资料)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: