前提:
已经搭建了hadoop,并且启动了hdfs
相关版本:centos7.2、hadoop2.7.1
1、查看hadoop版本下载对于的hbase版本
2、下载hbase和zookeeper
因为我的hadoop版本是2.7.1 所以就下载hbase2.0.5版本
hbase下载连接https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/
hbase采用外置zookeeper,hbase也有内置zookeeper,但是内置的zookeeper耦合性比较大,当hbase升级的时候zookeeper自然也会关闭也要跟着升级,也许会影响部分业务,建议还是使用外置zookeeper利于维护。
zookeeper下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
下载之后 上传服务器,解压
3、配置
1)配置hase
解压之后进入hbase安装包
cd /home/hadoop/hbase-2.0.5/conf/
(1) 配置hbase-env.sh
vim hbase-env.sh
配置jdk路径
export JAVA_HOME=/home/hadoop/jdk1.8.0_25
默认为true使用内部Zookeeper,由于我使用的外部ZK因此此处改为false
export HBASE_MANAGES_ZK=false
(2) 配置hbase-site.xml
vim hbase-site.xml
添加如下配置
<!--集群服务器的地址列表,用逗号 master,slave1,slave2-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<!-- Hbase 配置端口 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
<property>
<name>hbase.regionserver.port</name>
<value>16201</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16301</value>
</property>
<!--region server的共享目录,用来持久化Hbase 放在hdfs中的 '/hbase'目录-->
<!-- file:///tmp/hbase-${user.name}/hbase 默认是放在本地重启之后消失-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!--zookeeper客户端连接的端口-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!--Hbase的运行模式。false是单机模式,true是分布式模式 若为false,Hbase和Zookeeper会运行在同一个JVM里面。-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
(3) 配置regionserversvim regionservers
添加集群的服务器名称 (把原有的localhost删除)
master
slave1
slave2
(4)将hbase安装包和配置分发到slave1和slave2 (hbase-2.0.5为安装包)
scp -r hbase-2.0.5 slaver1:/home/hadoop/
scp -r hbase-2.0.5 slaver2:/home/hadoop/
2)配置zookeeper
(1) 外置Zookeeper集群配置
进入zookeeper的安装文件cd /home/hadoop/zookeeper-3.4.14/conf
(2)配置zookeeper的环境变量vim /etc/profile
添加如下配置
export ZK_HOME=/home/hadoop/zookeeper-3.4.14
export PATH=$PATH:$ZK_HOME/bin
使配置生效
source /etc/profile
(3)配置zoo.cfg
将zoo_sample.cfg重命名为zoo.cfgcp zoo_sample.cfg zoo.cfg
新建文件夹mkdir -p /home/hadoop/zookeeper-3.4.14/data
vim zoo.cfg
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
<!--zookeeper存储数据的地址 -->
dataDir=/home/hadoop/zookeeper-3.4.14/data
<!--默认端口-->
clientPort=2181
端口说明:
2888端口号是zookeeper服务之间通信的端口。
3888端口是zookeeper与其他应用程序通信的端口。
2181端口是zookeeper客户端请求接口。
(4)将zookeeper安装包和配置分发到slave1和slave2 (hbase-2.0.5为安装包)
cd /home/hadoop/
scp -r zookeeper-3.4.14 slaver1:/home/hadoop/
scp -r zookeeper-3.4.14 slaver2:/home/hadoop/
在每个节点(master,slave1,slave2)的/home/hadoop/zookeeper-3.4.14/data下面建立个文件
touch myid
在此文件中写入
4、启动
启动顺序 hadoop ->zookeeper->hbase
关闭顺序 hbase->zookeeper->hadoop
1)首先在hadoop中开启./start-dfs.sh
或者./start-all.sh
2)启动zookeeper集群
先查看zookeeper配置是否正确
进入bin文件中(master,slave1,slave2都要启动zookeeper)
./zkServer.sh start 启动
./zkServer.sh status 查看状态
./zkServer.sh stop 停止/关闭
原因:是jdk的环境变量配置有问题
export
这个jdk是openjdk已经被我删除了,重新搭建了本地的jdk,
只要在 vim /etc/profile
改掉JAVA_HOME并且source /etc/profile
刷新配置就好了;
3)再次启动zookeeper集群
4)启动Hbase集群(master,slalve1,slave2都要启动)
进入hbase包下的bin文件夹中
/home/hadoop/hbase-2.0.5/bin
启动hbase
./start-hbase.sh
查看进程
jps
5)启动zookeeper客户端查看节点
查看节点,发现了hbase节点
6)启动hbase命令行
进入hbase的bin下面
./hbase shell
7)远程连接hbase
上面配置了远程web页面的端口号16010
打开地址:16010