这几天应老师要求,在三台机器上搭建Hadoop环境与HBase环境,其中遇到不少问题,直到今日才基本运行成功。此处不讨论配置细节,只是把需要注意的问题列出作参考。
- 机器:
- psyDebian (Debian 7.5)
- centos1 (centos 6.5)
- centos2 (centos 6.5)
- java: java-1.6.0-openjdk
- hadoop: 2.2.0
- hbase: 0.98.3 (其自带的hadoop包版本也为2.2.0)
- 三台机器时间同步,防火墙(iptables)关闭
- 设置hostname。对于Debian,修改
/etc/hostname
;对于centos,修改/etc/sysconfig/network
。 - 设置
/etc/hosts
文件。删除其中的127.0.0.1 主机名
以及127.0.1.1 主机名
(如果有的话);127.0.0.1 localhost
可以保留。添加各台机器的IP地址及主机名。 - 设置每台机器之间的ssh无密码访问。必须保证两两机器之间无密码访问成功。
- 调整机器的限制。详情见此处(官网)
- 设置hadoop中的配置文件
hadoop-env.sh
,需设置JAVA_HOME - hbase中配置文件
hbase-env.sh
,需设置JAVA_HOME;由于使用自带zookeeper,需要设置HBASE_MANAGES_ZK=true
。 -
core-site.xml
、hdfs-site.xml
、hbase-site.xml
核心文件的配置。相关配置可见此处。 - 将hadoop与hbase部署到各结点中。注意保持每个节点中的配置文件一致性,以及有效性(比如
JAVA_HOME
路径,如果机器不同的话需要填写本地的Java路径;还有hdfs
与zookeeper
的本地存储路径) - 先启动
hdfs
,再启动hbase
。
此次搭建后在hbase-hadoop-master-psyDebian.out中以及创建表时都有警告:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
是jar包重复问题。但如果我删除了hadoop中的或者hbase中的一个,在启动或停止时hadoop或hbase都会报错。目前并未解决该包重复问题,但似乎并不影响创建表等hbase的使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。