当前位置: 首页 > article >正文

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

HBase

Zookeeper

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

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

        HBase

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

        ZooKeeper

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

        HBase

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

改一下名字

[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.修改文件名称
[root@master ~]# mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
2.配置zoo.cfg
[root@master ~]# vi /opt/module/zookeeper/conf/zoo.cfg
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.创建目录
[root@master ~]# mkdir /opt/module/zookeeper/data
[root@master ~]# mkdir /opt/module/zookeeper/logs
4.添加myid文件到data里(里面就填一个数字,master填1,slave1填2,slave2填2)
[root@master ~]# vi /opt/module/zookeeper/data/myid

5.把配置好的zookeeper分发到子节点去
[root@master ~]# scp -r /opt/module/zookeeper slave1:/opt/module/
[root@master ~]# scp -r /opt/module/zookeeper slave2:/opt/module/
6.修改子节点的myid
vi /opt/module/zookeeper/data/myid

7.配置HBase
[root@master ~]# vi /opt/module/hbase/conf/hbase-env.sh

在文件末尾添加 

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 文件
[root@master ~]# vi /opt/module/hbase/conf/hbase-site.xml 

        在 configuration 标签中添加如下内容:

<!--指定 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 文件
[root@master ~]# vi /opt/module/hbase/conf/regionservers 

文件里面只放下面内容

master
slave1
slave2

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

将环境变量分发给子节点

[root@master ~]# scp /etc/profile slave1:/etc/
[root@master ~]# scp /etc/profile slave2:/etc/

使环境变量生效

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

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

第一步: 启动HBase后在三个节点分别使用jps命令查看
hadoop启动(一定要启动)
start-all.sh
先启动zookeeper(三个节点都要启动)
[root@master ~]# zkServer.sh start
[root@slave1 ~]# zkServer.sh start
[root@slave2 ~]# zkServer.sh start
启动HBase
[root@master ~]# start-hbase.sh 
jps
master

slave1

slave2

第二步:正常启动后在hbase shell中查看命名空间
1.进入shell
[root@master ~]# hbase shell
2.查看命名空间
hbase(main):001:0> list_namespace

END

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

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


http://www.kler.cn/a/430708.html

相关文章:

  • SQL分类与数据类型整理
  • 开源模型应用落地-qwen2-7b-instruct-LoRA微调合并-ms-swift-单机单卡-V100(十三)
  • 【Web安全】SQL 注入攻击技巧详解:UNION 注入(UNION SQL Injection)
  • Linux : Linux环境开发工具vim / gcc / makefile / gdb / git的使用
  • 基于STM32的智能家居蓝牙系统(论文+源码)
  • openCvSharp 计算机视觉图片找茬
  • 使用Spring Boot和JDBC实现MySQL数据库连接与操作
  • 3D 生成重建028-Hunyuan3D腾讯出品的单视图3d生成
  • UE5中的渲染目标(Render Target)
  • 调度系统:分析 Apache Airflow 和 Prefect 在 基于Couchbase构建数据仓库 和 ETL任务调度 的场景下,哪一个更合适
  • 一个简单带颜色的Map
  • HTML前端开发-- Iconfont 矢量图库使用简介
  • 各种服务器使用 yum 安装 nginx
  • 如何理解UDP 和 TCP? 区别? 应用场景?
  • c++中的逻辑符
  • sql server 创建索引实验
  • AI 直播:打造全新直播体验
  • 【51单片机】程序实验1112.外部中断-定时器中断
  • 学习笔记065——Java实现 Word 转 PDF
  • UE5 教程分享 事件分发器和接口的选择
  • OpenCV相机标定与3D重建(9)相机标定函数calibrateCameraRO()的使用
  • A3061JSP+MYSQL+LW+基于Java的淘乐乐购物网站的设计与实现 购物商城 在线销售 源码 文档
  • 设计一个类使其具有动态属性,承接灵活可变的动态JSON
  • Java-WebSocket
  • Day2——需求分析与设计
  • [工具和软件]查询在用软件是否为最新版本