被虐了一周,终于整理出来hadoop 常用模块安装文档,为了其他人在安装过程中不被虐,把操作记录下来供其他人参考,只有按照以下步骤一步一步走,保证都可以安装成功,hadoop 安装请参考之前编写的文档。
http://blog.csdn.net/haoxiaoyan/article/details/52523749
1.解压软件
tar zxvf hbase-1.1.5-bin.tar.gz
chown -R hadoop:hadoop hbase-1.1.5
2.配置Hbase
① 修改hbase-env.sh
vi conf/hbase-env.sh,出掉JAVA_HOME的注释,并修改为本地的
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HBASE_LOG_DIR=/opt/hadoop/hbase-1.1.5/logs
export HBASE_MANAGES_ZK=false
修改HBASE_MANAGES_ZK为false,默认为true,表示HBase托管zookeeper实例,如果是HBase独占的zookeeper,可以设定为true。
② 配置hbase-site.xml文件
vi hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://slavenode1:9090/hbase</value> 这个要提前核对下端口是否被占用 ,注意slavenode1是备节点中的一个不是主机点的机器名,这个是备份主
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hadoop/hbase-1.1.5/data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>slavenode1,slavenode2,slavenode3</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
hbase.rootdir:Region Servers共享的HBase持久化数据的存储地址。需要使用包含文件系统scheme的完全限定地址。
hbase.cluster.distributed:指定Hbase集群是否以分布式方式运行。
hbase.master.port:Master绑定的端口,包括backup-master.
hbase.zookeeper.property.dataDir:这个是ZooKeeper配置文件zoo.cfg中的dataDir。zookeeper存储数据库快照的位置。
hbase.zookeeper.quorum:ZooKeeper的所有成员服务器列表,服务器名之间用逗号分隔。
hbase.zookeeper.property.clientPort:这个是ZooKeeper配置文件zoo.cfg中的clientPort。ZooKeeper提供给客户端连接的端口,默认是2181。
③ 修改regionservers,将RegionServers写入。
vim conf/regionservers
Slavenode1
slavenode2
slavenode3
④ 添加环境变量方便调用HBase
vim /etc/profile
export HBASE_HOME=/opt/hadoop/hbase-1.1.5
export PATH=$PATH:$HBASE_HOME/bin
⑤ 创建两个目录
[root@masternode hbase-1.1.5]# mkdir logs
[root@masternode hbase-1.1.5]# mkdir data
[root@masternode data]# echo ‘1’> myid
[root@masternode data]# echo ‘2’> myid
[root@slavenode2 data]# echo ‘3’> myid
[root@slavenode3 data]# echo ‘4’> myid
⑥ 将修改好的安装目录分发到所有节点,一并修改环境变量。
[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode2:/opt/hadoop/
[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode3:/opt/hadoop/
[root@masternode hadoop]# scp -r hbase-1.1.5 root@slavenode1:/opt/hadoop/
⑦ 把/etc/profile ~/.bash_profile 分发各级节点
⑧ 启动HBase
[root@masternode bin]# pwd
/opt/hadoop/hbase-1.1.5/bin
[root@masternode bin]# sh start-hbase.sh
在masternode上调用start-hbase即可。
⑨ 通过jps查看进程。
masternode上有HMaster,slavenode1上有HMaster和HRegionServer,slavenode2和slavenode3上是HRegionServer。
⑩ 验证完毕
[root@masternode bin]# ./hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hadoop/hbase-1.1.5/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2016-09-08 03:45:45,878 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.1.5, r239b80456118175b340b2e562a5568b5c744252e, Sun May 8 20:29:26 PDT 2016
hbase(main):001:0> create 'test', 'cf'
总结:
1. hbase.master.port需要指定,不然启动backup-master时会报Already in use的错误。
2. HMaster(包括backup-master)需要能够passwordless ssh到其它服务器
3. ZooKeeper应该用奇数个节点。