天天看点

hadoop搭建之HBase安装

本文搭建环境:

centos6.9

jdk1.8.0_201

hadoop-2.7.2

本文搭建HBase环境

hbase-1.2.4

zookeeper-3.4.9

1、下载安装包

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件

ZooKeeper相当于hadoop中yarn,但是它的单独安装

2、将下载好的安装包(个人使用WinSCP)导入opt下的software目录下

hadoop搭建之HBase安装

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)