HBase分布式安装配置(Zookeeper+HBase)

HBase 是一个面向列式存储的分布式数据库,其设计思想来源于 Google 的 BigTable 论文。HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeeper 实现。HBase 良好的分布式架构设计为海量数据的快速存储、随机访问提供了可能,基于数据副本机制和分区机制可以轻松实现在线扩容、缩容和数据容灾,是大数据领域中 Key-Value 数据结构存储最常用的数据库方案。

环境说明:

复制代码
服务端登录地址详见各任务服务端说明。
补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;
相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;
所有任务中应用命令必须采用绝对路径;
进入Master节点的方式为
docker exec -it master /bin/bash
进入Slave1节点的方式为
docker exec -it slave1 /bin/bash
进入Slave2节点的方式为
docker exec -it slave2 /bin/bash
三个容器节点的root密码均为123456

提前准备好apache-zookeeper-3.5.7-bin.tar.gz、hbase-2.2.3-bin.tar.gz放在宿主机的/opt/下(模拟的自己准备,比赛时会提供)

Hadoop 完全分布式安装配置

环境搭建请看这篇文章大数据模块A环境搭建

前提条件已经在容器里搭建完hadoop了,没搭建的请看这篇Hadoop 完全分布式安装配置****

HBase分布式安装配置

本任务需要使用root用户完成相关配置,安装HBase需要配置Hadoop和ZooKeeper等前置环境。命令中要求使用绝对路径,具体要求如下:

1、 从宿主机/opt目录下将文件apache-zookeeper-3.5.7-bin.tar.gz、hbase-2.2.3-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将ZooKeeper、HBase安装包解压到/opt/module目录下,将HBase的解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

**第一步:**从宿主机/opt目录下将文件apache-zookeeper-3.5.7-bin.tar.gz、hbase-2.2.3-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建)

ZooKeeper

bash 复制代码
[root@Bigdata ~]# docker cp /opt/apache-zookeeper-3.5.7-bin.tar.gz master:/opt/software/

HBase

bash 复制代码
[root@Bigdata ~]# docker cp /opt/hbase-2.2.3-bin.tar.gz master:/opt/software/
**第二步:**将ZooKeeper、HBase安装包解压到/opt/module目录下

ZooKeeper

bash 复制代码
[root@master ~]# tar zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

HBase

bash 复制代码
[root@master ~]# tar zxvf  /opt/software/hbase-2.2.3-bin.tar.gz -C /opt/module/

改一下名字

bash 复制代码
[root@master ~]# mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeeper 
[root@master ~]# mv /opt/module/hbase-2.2.3 /opt/module/hbase

2、 完成ZooKeeper相关部署,用scp命令并使用绝对路径从容器master复制HBase解压后的包分发至slave1、slave2中,并修改相关配置,配置好环境变量,在容器Master节点中运行命令hbase version,将全部复制命令复制并将hbase version命令的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步: 完成ZooKeeper相关部署
1.修改文件名称
bash 复制代码
[root@master ~]# mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
2.配置zoo.cfg
bash 复制代码
[root@master ~]# vi /opt/module/zookeeper/conf/zoo.cfg
bash 复制代码
dataDir=/opt/module/zookeeper/data
datdLogDir=/opt/module/zookeeper/logs
​
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

代码位置如图:

3.创建目录
bash 复制代码
[root@master ~]# mkdir /opt/module/zookeeper/data
[root@master ~]# mkdir /opt/module/zookeeper/logs
4.添加myid文件到data里(里面就填一个数字,master填1,slave1填2,slave2填2)
bash 复制代码
[root@master ~]# vi /opt/module/zookeeper/data/myid
5.把配置好的zookeeper分发到子节点去
bash 复制代码
[root@master ~]# scp -r /opt/module/zookeeper slave1:/opt/module/
[root@master ~]# scp -r /opt/module/zookeeper slave2:/opt/module/
6.修改子节点的myid
bash 复制代码
vi /opt/module/zookeeper/data/myid
7.配置HBase
bash 复制代码
[root@master ~]# vi /opt/module/hbase/conf/hbase-env.sh

在文件末尾添加

bash 复制代码
export JAVA_HOME=/opt/module/java
export HADOOP_HOME=/opt/module/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_PID_DIR=${HBASE_HOME}/pid
8.配置 **hbase-site.xml**文件
bash 复制代码
[root@master ~]# vi /opt/module/hbase/conf/hbase-site.xml 

configuration 标签中添加如下内容:

XML 复制代码
<!--指定 hbase 根路径 -->
<property>
<name>hbase.rootdir</name>
    <value>hdfs://master:8020/hbase</value>
</property>
​
<!--浏览器的访问端口-->
<property>
     <name>hbase.master.info.port</name>
     <value>16010</value>
</property>
​
 <!--将 hbase 设置为分布式部署 -->
<property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
</property>
​
 <!--指定hbase在本地下生成文件路径 -->
<property>
     <name>hbase.tmp.dir</name>
     <value>/opt/module/hbase/tmp</value>
</property>
​
 <!--指定 zookeeper 服务器 -->
<property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
</property>
​
 <!-- 避免出现启动错误。 -->
<property>
   <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>
9.修改 regionservers 文件
bash 复制代码
[root@master ~]# vi /opt/module/hbase/conf/regionservers 

文件里面只放下面内容

bash 复制代码
master
slave1
slave2
10.删除slf4j-log4j12-1.7.25.jar 解决 log4j 兼容性问题
bash 复制代码
[root@master ~]# rm -rf /opt/module/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar 
第二步:用scp命令并使用绝对路径从容器master复制HBase解压后的包分发至slave1、slave2中
bash 复制代码
[root@master ~]# scp -r /opt/module/hbase slave1:/opt/module/
[root@master ~]# scp -r /opt/module/hbase slave2:/opt/module/
第三步:配置好环境变量/etc/profile
bash 复制代码
[root@master ~]# vi /etc/profile
复制代码
在文件末尾添加
bash 复制代码
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin

将环境变量分发给子节点

bash 复制代码
[root@master ~]# scp /etc/profile slave1:/etc/
[root@master ~]# scp /etc/profile slave2:/etc/

使环境变量生效

bash 复制代码
[root@master ~]# source /etc/profile
第四步:在容器Master节点中运行命令hbase version
bash 复制代码
[root@master ~]# hbase version

3、 启动HBase后在三个节点分别使用jps命令查看,并将结果分别截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;正常启动后在hbase shell中查看命名空间,将查看命名空间的结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

第一步: 启动HBase后在三个节点分别使用jps命令查看
hadoop启动(一定要启动)
bash 复制代码
start-all.sh
先启动zookeeper(三个节点都要启动)
bash 复制代码
[root@master ~]# zkServer.sh start
[root@slave1 ~]# zkServer.sh start
[root@slave2 ~]# zkServer.sh start
启动HBase
bash 复制代码
[root@master ~]# start-hbase.sh 
jps
master
slave1
slave2
第二步:正常启动后在hbase shell中查看命名空间
1.进入shell
bash 复制代码
[root@master ~]# hbase shell
2.查看命名空间
bash 复制代码
hbase(main):001:0> list_namespace

END

一键三连是我写文章的动力!

声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !

相关推荐
黄名富2 小时前
Kafka 日志存储 — 日志索引
java·分布式·微服务·kafka
DM很小众3 小时前
Kafka 和 MQ 的区别
分布式·kafka
sjsjsbbsbsn3 小时前
基于注解实现去重表消息防止重复消费
java·spring boot·分布式·spring cloud·java-rocketmq·java-rabbitmq
重生之Java再爱我一次4 小时前
Hadoop集群搭建
大数据·hadoop·分布式
中东大鹅5 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
狮歌~资深攻城狮7 小时前
TiDB出现后,大数据技术的未来方向
数据库·数据仓库·分布式·数据分析·tidb
狮歌~资深攻城狮7 小时前
TiDB 和信创:如何推动国产化数据库的发展?
数据库·数据仓库·分布式·数据分析·tidb
明达技术9 小时前
分布式 IO 模块与伺服电机:拉丝机高效生产的 “黄金搭档”
分布式
weisian15110 小时前
消息队列篇--原理篇--Pulsar(Namespace,BookKeeper,类似Kafka甚至更好的消息队列)
分布式·kafka
狮歌~资深攻城狮10 小时前
TiDB与Oracle:数据库之争,谁能更胜一筹?
数据库·数据仓库·分布式·数据分析·tidb