一、版本介绍
linux : CentOS7
Hadoop : 2.7.6
zookeeper : 3.4.6
hbase : 1.4.6
jdk : jdk1.8.0_171
三个节点的主机名分别为:master、node1、node2
二、安装Hadoop
HBase 是在 Hadoop 这种分布式框架中提供持久化的数据存储与管理的工具。在使用 HBase 的分布式集群模式时,前提是必须有 Hadoop 系统,所以我们需要先安装Hadoop,进行到这一步相信大家已经安装过Hadoop环境了,如果没有安装的可以参考下面的链接。
https://www.cnblogs.com/yy-yang/p/14615048.html
三、安装zookeeper
zookeeper安装步骤
hbase Client客户端、Master、Region都会通过心跳机制(RPC通信)与zookeeper保持联系
1、上传安装包到master并解压
tar -zxvf zookeeper-3.4.6.tar.gz
我这里压缩包存放在/usr/local/module下,解压到/usr/local/soft目录下,读者需要根据自己的实际情况安装,下面的环境变量也需要根据自己实际情况配置
2、配置环境变量
vim /etc/profile
在配置文件中加入以下内容
export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使环境变量生效
source /etc/profile
输入zk按tab键,如果有提示说明环境变量配置的没问题
3、修改配置文件
cd /usr/local/soft/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
data目录下面会创建
注意:路径要与自己的一致
dataDir=/usr/local/soft/zookeeper-3.4.6/data
增加以下内容
注意:主机名要改成自己的
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
4、同步到其它节点
该命令在/usr/local/soft下面执行
scp -r zookeeper-3.4.6 node1:`pwd`
scp -r zookeeper-3.4.6 node2:`pwd`
同步配置node1和node2的环境变量
下面写的为绝对路径,可以在任意地方执行
scp /etc/profile node1:/etc/
scp /etc/profile node2:/etc/
在所有节点执行使新配置的环境变量生效
source /etc/profile
4、创建/usr/local/soft/zookeeper-3.4.6/data目录,所有节点都要创建
mkdir /usr/local/soft/zookeeper-3.4.6/data
在data目录下创建myid文件
vim /usr/local/soft/zookeeper-3.4.6/data/myid
master,node1,node2分别加上0,1,2
这个数字用来唯一标识这个服务,一定要保证唯一性,zookeeper会根据这个id来取出server.x上的配置
5、同步时间
zookeeper节点之间需要实时监听节点是否存活
如果没有ntpdate命令,可以yum命令先安装:
yum install ntp -y
从网络服务器同步时间(需要虚拟机联网):
ntpdate -u s2c.time.edu.cn
(经常挂起虚拟机,可能会导致时间停止,可使用crontab做成定时同步)
crontab -e
// 进入crontab命令编辑模式
加入以下内容(每十分钟同步一次):
*/10 * * * * ntpdate -u s2c.time.edu.cn
6、启动zk,
zkServer.sh start
三台都需要执行
zkServer.sh status
查看状态
当有一个leader的时候启动成功,我这里node2为leader,这个是随机的每次启动可能不一样
下面简单介绍下zookeeper的使用,与本次安装无关,可以忽略
连接zk
zkCli.sh
zk 是一个目录结构 ,每个节点可以存数据,同时可以有子节点
zk shell
创建目录
create /test test create /test/a 1
获取数据
get /test
ls /test
delete
只能删除没有子节点的节点
rmr /test
删除节点
重置zk
1、杀掉所有zk进程
kiil -9 pid
2、删除data目录下的version文件, 所有节点都要删除
rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2
2、启动zk
zkServer.sh start
三、HBase安装
Hbase的启动前需要先启动zookeeper和Hadoop,这里先启动好再进行下面的安装
准备工作
1、启动hadoop
start-all.sh
验证
http://master:50070
2、启动zookeeper
需要在在三台中分别启动
zkServer.sh start zkServer.sh status
搭建hbase
1、上传解压到自己的安装目录
tar -zxvf hbase-1.4.6-bin.tar.gz
2、修改hbase-env.sh文件
进入到配置文件目录
cd /usr/local/soft/hbase-1.4.6/conf
vim hbase-env.sh
增加java配置(根据自己实际情况配置,文件中的这行注释掉了,可以找到后修改也可以直接在最后面添加这一行)
export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
关闭默认zk配置
因为HBase自己有个zk,这里我们把它自带的关掉,用我们自己的
export HBASE_MANAGES_ZK=false
3、修改hbase-site.xml文件
vim hbase-site.xml
<!--hbase.root.dir 将数据写入哪个目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!--单机模式不需要配置,分布式配置此项,value值为true,多节点分布-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!--单机模式不需要配置多个IP,分布式配置此项value值为多个主机ip,多节点分布-->
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,master</value>
</property>
4、修改regionservers文件
默认是单节点的,我这里搭建的是分布式的, 在这里列出了你希望运行的全部 HRegionServer,一行写一个host (就像Hadoop里面的 slaves 一样
改为自己的子节点主机名
vim regionservers
node1
node2
如果是伪分布式版本,增加master即可
5、同步到所有节点(如果是伪分布式不需要同步)
命令在hbase安装的文件目录下运行,例如我的hbase装在/usr/local/soft
命令就在/usr/local/soft下运行
scp -r hbase-1.4.6/ node1:`pwd` scp -r hbase-1.4.6/ node2:`pwd`
6、配置环境变量
vim /etc/profile
export HBASE_HOME=/usr/local/soft/hbase-1.4.6
export PATH=$PATH:$HBASE_HOME/bin
同步配置node1和node2的环境变量
下面写的为绝对路径,可以在任意地方执行
scp /etc/profile node1:/etc/
scp /etc/profile node2:/etc/
在所有节点执行使新配置的环境变量生效
source /etc/profile
7、启动hbase集群 , 需要在master上执行
start-hbase.sh
通过jps查看下进程
master上有
其他两个节点
8、验证hbase
http://master:16010
hbase日志文件所在的目录
/usr/local/soft/hbase-1.4.6/logs
关闭集群的命令
stop-hbase.sh
通过 hbase shell
进入到hbase的命令行
创建表 列簇 列式数据库
create 'test','info'
插入数据
put 'test','001','info:name','zhangsan'
查询数据
get 'test','001'
如果hbase 搭建失败了 不知道问题出在哪里
重置hbase
1、关闭hbase集群
杀死进程
stop-hbase.sh
2、删除hdfs数据
hadoop dfs -rmr /hbase
3、删除元数据 zk
zkCli.sh
rmr /hbase
4、重启hbase
start-hbase.sh