本文搭建环境:
centos6.9
jdk1.8.0_201
hadoop-2.7.2
本文搭建HBase环境
hbase-1.2.4
zookeeper-3.4.9
1、下载安装包
hbase-1.2.4
zookeeper-3.4.9
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件
ZooKeeper相当于hadoop中yarn,但是它的单独安装
2、将下载好的安装包(个人使用WinSCP)导入opt下的software目录下
3、解压ZooKeeper,并重命名为 zookeeper
tar -zvxf /opt/software/zookeeper-3.4.9.tar.gz -C /opt/modules/
4、在hadoop安装目录下新建zookeeper/data目录,在data目录下新建myid文件,输入一个数字(c1 为 1,c2 为 2,c2 为 3【c2,c3为复制之后的文件,见第6步】)
5、修改配置文件 zoo.cfg
zoo.cfg是没有的,需要将文件目录下:opt/modules/zookeeper/conf/zoo_sample.cfg
复制并且改名为zoo.cfg
或使用命令:cp zoo_sample.cfg zoo.cfg
找到:dataDir=/tmp/zookeeper 将其删除
将以下信息复制进去:dataDir为第4步新建的文件目录,c1,c2,c3为节点
dataDir=/opt/madules/hadoop/zookeeper/data
server.1=c1:2888:3888
server.2=c2:2888:3888
server.3=c3:2888:3888
6、使用 scp 命令进行远程复制
主目录下,qiqi为我的主机名
scp -r /opt/modules/zooKeeper/ qiqi@c2:/opt/modules/
scp -r /opt/modules/zooKeeper/ qiqi@c3:/opt/modules/
7、启动 ZooKeeper 集群,在 ZooKeeper 集群的每个结点上,执行启动 ZooKeeper 服务的脚本
切换到/opt/modules目录下
zookeeper/bin/zkServer.sh start
(1) 如果启动报类似异常:QuorumCnxManager@384] - Cannot open channel to 2 at election address slave-02/192.168.0.178:3888 是可以忽略的,因为该服务启动时会尝试连接所有节点,而其他节点尚未启动。通过后面部分可以看到,集群在选出一个 Leader 后,最后稳定 了。其他结点可能也出现类似问题,属于正常。
(2) 关闭防火墙。在 hadoop 集群环境(linux 系统)中最好关闭防火墙,不然会出现很多问题,例如 namenode 找不到 datanode 等。如果不关闭防火墙,客户端使用 API 操作 HDFS 以及 ZooKeeper,可能就会出现下面常见的两种异常:
a、使用 API 操作 HDFS 时会出现异常:java.net.NoRouteToHostException: No route to host
b、使用 API 操作 ZK 时会出现异常: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for xxxx
(3) 使用 root 权限登陆后,输入关闭防火墙命令:
/etc/init.d/iptables stop $ service iptables stop
(4) 修改禁用 selinux: /etc/selinux/config 文件,设置"SELINUX=disabled"
8、HBase 集群安装配置,解压hbase-1.2.4,并重命名为 hbase
tar -zvxf /opt/software/hbase-1.2.4-bin.tar.gz -C /opt/madules/
9、配置环境变量(只在主节点里配)
export HBASE_HOME=/opt/modules/hbase
export PATH=$HBASE_HOME/bin:$PATH
source /etc/profile 使之生效
建立hdfs缓存目录:
hadoop fs -mkdir hbase
10、配置hbase-env.sh
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export JAVA_HOME=/opt/modules/jdk1.8.0_201
export HBASE_CLASSPATH=/opt/madules/hadoop
export HBASE_MANAGES_ZK=false
11、配置hbase-site.xml
<configuration>
<property>
// 节点修改
<name>hbase.rootdir</name>
<value>hdfs://c1:9000/hbase</value>
</property>
<property>
// 节点修改
<name>hbase.master</name>
<value>c1</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
// 节点修改
<name>hbase.zookeeper.quorum</name>
<value>c1,c2,c3</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000000</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
// 节点修改
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/modules/hadoop/zookeeper/data</value>
</property>
</configuration>
11、更改 regionservers,删掉文件里的localhost,改为
c1
c2
c3
12、分发并同步安装包
scp -r /opt//modules/hbase c2:/opt//modules
scp -r /opt//modules/hbase c3:/opt//modules
13、启动集群,主目录切换到/opt/modules/ 目录下
[qiqi@c1 modules]
1、启动 ZooKeeper(三个节点)
zookeeper/bin/zkServer.sh start
2、启动 hadoop(主节点)
hadoop/sbin/start-all.sh
3、启动 hbase(主节点)
hbase/bin/start-hbase.sh
14、启动后,jps查看,master 上进程和 slave 进程列表
c1节点
4161 NodeManager #YARN进程
4545 HMaster # hbase 进程
3587 NameNode #HDFS进程
4759 Jps
3831 SecondaryNameNode # HDFS进程
4680 HRegionServer #HBase进程
3691 DataNode #HDFS进程
4046 ResourceManager # YARN 进程
3439 QuorumPeerMain # zookeeper 进程
c2、c3节点
3761 NodeManager
3980 Jps
3644 DataNode
3933 HRegionServer
15、进入 hbase shell 进行验证
[qiqi@c1 ~]$ hbase/bin/hbase shell
2015-07-20 00:42:11,725 WARN [main] util.NativeCodeLoader: Unable to loa d native-hadoop library for your platform... using builtin-java classes where ap plicable
HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell
Version 1.0.1.1, re1dbf4df30d214fca14908df71d038081577ea46, Sun May 17 1 2:34:26 PDT 2015
//hbase shell操作,list 查看表
hbase(main):001:0> list
TABLE
0 row(s) in 1.6950 seconds => []
//status 查看服务器状态
hbase(main):002:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load
16、查看是否启动
c1:50070
c1:8088 (查看hadoop)