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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936158.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【2024 Dec 超实时】编辑安装llama.cpp并运行llama

首先讲一下环境 这是2024 年12月&#xff0c;llama.cpp 的编译需要cmake 呜呜呜 网上教程都是make 跑的。反正我现在装的时候make已经不再适用了&#xff0c;因为工具的版本&#xff0c;捣鼓了很久。 ubuntu 18 conda env内置安装。 以下是可以完美编译llama.cpp的测试工具版…

go-zero(十二)消息队列

go zero 消息队列 在微服务架构中&#xff0c;消息队列主要通过异步通信实现服务间的解耦&#xff0c;使得各个服务可以独立发展和扩展。 go-zero中使用的队列组件go-queue&#xff0c;是gozero官方实现的基于Kafka和Beanstalkd 的消息队列框架,我们使用kafka作为演示。 一、…

vue绕过rules自定义编写动态校验

今天犯了个低级错误&#xff0c;虽然走了很多弯路&#xff0c;但这个过程还是值得记录一下 例子如下&#xff0c;有两个输入框&#xff1a; 第一个是套餐选择下拉框&#xff0c;可以下拉选择三个内容 第二个要根据上面的套餐选择三个选项来决定怎么显示&#xff0c;使用v-if&…

ABAQUS进行焊接仿真分析(含子程序)

0 前言 焊接技术作为现代制造业中的重要连接工艺,广泛应用于汽车、船舶、航空航天、能源等多个行业。焊接接头的质量和性能直接影响到结构件的安全性、可靠性和使用寿命。因此,在焊接过程中如何有效预测和优化焊接过程中的热效应、应力变化以及材料变形等问题,成为了焊接研…

【efinance一个2k星的库】

efinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库&#xff0c;回测以及量化交易的好帮手 但没有等比复权的&#xff0c;不用。 import efinance as ef ef.stock.get_quote_history(510880,fqt2)

【考前预习】3.计算机网络—数据链路层

往期推荐 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 浅谈云原生--微服务、CICD、Serverless、服务网格_云原生cicd-CSDN博客 子网掩码、网络地址、广播地址、子网划分及计算_子网广播地址-CSDN博客 浅学React和JSX-CSDN博客 目录 1.数…

Microsemi Libero SoC免费许可证申请指南(Microchip官网2024最新方法)

点击如下链接&#xff1a; https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/licensing 点击右侧&#xff0c;请求免费的License 如果提示登录&#xff0c;请先登录Microchip账号。 点击Request Free License。 选项一年免费的Li…

嵌入式Linux应用层开发——调试专篇(关于使用GDB调试远程下位机开发板的应用层程序办法 + VSCode更好的界面调试体验提升)

环境预备——调试 虽说有正点原子的代码带着&#xff0c;但是&#xff0c;如果我们只是打着printf这种方式进行手动的检查代码错误&#xff0c;还是不太方便的&#xff0c;笔者这里整理了两个上位机调试路线。 路线1&#xff1a;使用GCC7.5&#xff0c;这个路线比较保守&#…

深度学习训练参数之学习率介绍

学习率 1. 什么是学习率 学习率是训练神经网络的重要超参数之一&#xff0c;它代表在每一次迭代中梯度向损失函数最优解移动的步长&#xff0c;通常用 η \eta η 表示。它的大小决定网络学习速度的快慢。在网络训练过程中&#xff0c;模型通过样本数据给出预测值&#xff0…

蒙特卡洛模拟(Monte Carlo Simulation)详解

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 历史背景 蒙特卡洛模拟的名称来源于摩纳哥的蒙特卡洛赌场&#xff0c;因其依赖于随机性和概率&#xff0c;与赌博中的随机过程有相似之处。该方法的雏形可以追溯到20世纪40年代&#xff0c;二战期…

Git-分支(branch)常用命令

分支 我们在做项目开发的时候&#xff0c;无论是软件项目还是其他机械工程项目&#xff0c;我们为了提高效率以及合理的节省时间等等原因&#xff0c;现在都不再是线性进行&#xff0c;而是将一个项目抽离出诸进行线&#xff0c;每一条线在git中我们就叫做分支&#xff0c;bran…

《数据结构之美-- 单链表》

引言&#xff1a; 首先由上次我们实现的顺序表聊起&#xff0c;我们在实现顺序表的时候会发现&#xff0c;在每次插入数据时当空间不够时就会涉及到扩容&#xff0c;而顺序表的扩容一般都是呈二倍的形式来进行&#xff0c;因此这就有可能造成空间的浪费&#xff0c;那该如何解…

NVR小程序接入平台/设备EasyNVR深度解析H.265与H.264编码视频接入的区别

随着科技的飞速发展和社会的不断进步&#xff0c;视频压缩编码技术已经成为视频传输和存储中不可或缺的一部分。在众多编码标准中&#xff0c;H.265和H.264是最为重要的两种。今天我们来将深入分析H.265与H.264编码的区别。 一、H.265与H.264编码的区别 1、比特率与分辨率 H.…

JPG 转 PDF:免费好用的在线图片转 PDF 工具

JPG 转 PDF&#xff1a;免费好用的在线图片转 PDF 工具 在日常工作和生活中&#xff0c;我们经常需要将图片转换为 PDF 格式。无论是制作电子文档、准备演示材料&#xff0c;还是整理照片集&#xff0c;将图片转换为 PDF 都是一个常见的需求。今天为大家介绍一款完全免费、无需…

RabbitMQ 整合 SpringBoot

概述 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力、流量削峰消息服务中两个重要概念: 消息代理(`message broker`)和目的地(`destination`) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形…

Docker的初识

目录 1. 容器技术发展史1.1 Jail 时代1.2 云时代1.3 云原生时代1.3.1 Google & Docker 竞争1.3.2 k8s 成为云原生事实标准 2. 虚拟化和容器化的概念2.1 什么是虚拟化、容器化2.2 为什么要虚拟化、容器化&#xff1f;2.3 虚拟化实现方式2.3.1 应用程序执行环境分层2.3.2 虚拟…

MySQL 索引解析:让查询速度飙升

1.前言 之前几篇文章&#xff0c;小编和大家分享了mysql innodb的内存结构&#xff0c;这次小编准备用两篇文章来和大家分享下mysql innodb的索引: mysql的基础知识 和 基于索引的sql优化 。 2. 什么是索引&#xff1f; 定义&#xff1a;索引是数据库中用于快速查找数据的机…

记录 idea 启动 tomcat 控制台输出乱码问题解决

文章目录 问题现象解决排查过程1. **检查 idea 编码设置**2. **检查 tomcat 配置**3.检查 idea 配置文件4.在 Help 菜单栏中&#xff0c;修改Custom VM Options完成后保存&#xff0c;并重启 idea 问题现象 运行 tomcat 后&#xff0c;控制台输出乱码 解决排查过程 1. 检查 id…

MySQL有哪些高可用方案?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL有哪些高可用方案?】面试题。希望对大家有帮助&#xff1b; MySQL有哪些高可用方案? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 高可用方案旨在确保数据库系统的高可靠性、低宕机时间、以及在硬件故障…

基于STM32的火灾烟雾报警器设计开题报告

开题报告 题目&#xff1a;基于STM32的火灾烟雾报警器Proteus仿真设计 一、研究背景与意义 随着现代城市化进程的加快&#xff0c;火灾安全问题日益凸显&#xff0c;火灾的早期预警对于减少人员伤亡和财产损失至关重要。传统的火灾报警系统往往依赖于烟雾或温度的单一检测&a…