准备:
1、JDK安装调试完毕
2、hadoop安装调试完毕。
3、下载hbase,地址:http://www.apache.org/dyn/closer.cgi/hbase/ ;本次安装使用版本hbase-0.94.0-security(未确认是否要打补丁)
4、 ulimit 和 nproc: Base是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ: Why do I see "java.io.IOException...(Too manyopen files)" in my logs?异常。
所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成 OutOfMemoryError异常。
设置ulimit:
如果你使用的是Ubuntu,你可以这样设置:
在文件 /etc/security/limits.conf 添加一行,如:
hadoop - nofile 32768
可以把 hadoop 替换成你运行Hbase和Hadoop的用户。如果你用两个用户,你就需要配两个。还有配nproc hard 和 softlimits. 如:
hadoop soft/hard nproc 32000
在 /etc/pam.d/common-session 加上这一行:
session required pam_limits.so
否则在 /etc/security/limits.conf上的配置不会生效.
还有注销再登录,这些配置才能生效!
5、修改Hadoop HDFS Datanode同时处理文件的上限:dfs.datanode.max.xcievers
一个 Hadoop HDFS Datanode 有一个同时处理文件的上限. 这个参数叫 xcievers (Hadoop的作者把这个单词拼错了). 在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096:
<property> <name>dfs.datanode.max.xcievers</name> <value>4096</value> </property>
对于HDFS修改配置要记得重启.
如果没有这一项配置,你可能会遇到奇怪的失败。你会在Datanode的日志中看到xcievers exceeded,但是运行起来会报 missing blocks错误。例如: 02/12/1220:10:31 INFO hdfs.DFSClient: Could not obtain blockblk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.io.IOException: No livenodes contain current block. Will get new block locations from namenode andretry...
安装:
1、解压 hbase-0.94.0-security.tar.gz文件;
2、将hbase-0.94.0-security拷贝到linux安装目录下;
3、拷贝hbase-0.94.0-security/src/main/resources/hbase-default.xml中的内容到hbase-0.94.0-security/conf/hbase-site.xml中。
4、 修改 hbase-site.xml:
设置hbase.rootdir的值为: hdfs://namenode:90000/hbase;
设置hbase.master的值为:namenode:60010
设置hbase.master.port 的值为:60000
设置hbase.zookeeper.quorum的值为 ( zookeeper 集群数量配置必须为奇数) :datanode1,datanode2,datanode3
5、修改:hbase-env.sh:
设置环境变量:JAVA_HOME=/home/yousuo/jdk1.7.0_03
6、在Master节点修改regionservers,列出所有slave机器,一行一个机器名:
datanode1
datanode2
datanode3
7、打包部署文件到集群所有机器上,路径保持一致。(可以使用rsync同步)
运行hbase
1、 修改/etc/profile文件,在文件末尾加上环境变量:
export HBASE_HOME=/home/yousuo/hbase export PATH=$PATH:$HBASE_HOME/bin
在各客户端执行source /etc/profile
2、在hbase/bin 目录下执行 chmod +x * 添加执行权限,然后执行 start-hbase.sh 启动hbase服务。
3、执行命令hbase shell登录成功显示如下:
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.0, r1332822, Tue May 1 21:03:16 UTC 2012
4、在控制台输入list成功则显示如下:
TABLE
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/yousuo/hbase/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/yousuo/hadoop/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
0 row(s) in 1.0830 seconds
hbase(main):002:0>
本文参考了以下文档:http://www.yankay.com/wp-content/hbase/book.html