HBase集群环境搭建与测试
🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇
个人主页:beixi@
本文章收录于专栏(点击传送):【大数据学习】
💓💓持续更新中,感谢各位前辈朋友们支持学习~💓💓
文章目录
- 1.HBase集群环境介绍
- 2.搭建环境准备
- 3.搭建步骤
- 4.HBase集群环境启动、验证和停止
1.HBase集群环境介绍
HBase集群由多个RegionServer节点和一个或多个HMaster节点组成。HMaster节点负责管理元数据(例如表的位置、分区等),并协调集群中的各个节点。RegionServer节点负责存储和处理数据,并与HMaster节点通信以获取元数据信息。
HBase集群的主要特点包括:
- 可靠性:HBase采用数据副本和RegionServer读写分离等机制来实现容错和恢复能力,即使部分节点出现故障,集群仍然可用。
- 高性能:HBase通过将表分割成不同的Region来进行水平扩展,可以处理海量数据并具有很高的读写性能。
- 数据模型:HBase提供类似于Google的Bigtable的列族存储模型,可以灵活定义列族和列,支持动态添加或删除列族和列。
- 多版本控制:HBase支持存储多个版本的数据,可以回滚到先前的状态,也可以查询以前的历史值。
2.搭建环境准备
本次用到的环境有:
Oracle Linux 7.4
Zookeeper3.4.6集群环境
Hadoop2.7.4集群环境
注:HBase依赖于ZooKeeper来进行分布式协调和管理,因此在搭建启用HBASE之前,需要提前搭建并启动好zookeeper集群环境,zookeeper的搭建和启动可以参考我的上一篇文章:ZooKeeper集群环境搭建
3.搭建步骤
1.启动zookeeper集群环境,zookeeper的搭建和启动可以参考我的上一篇文章:ZooKeeper集群环境搭建
2.解压HBase压缩文件至/opt目录。
tar -zxvf /root/experiment/file/hbase-1.2.6-bin.tar.gz -C /opt

3.修改解压后文件夹的名字为hbase。
cd /opt
mv /opt/hbase-1.2.6 /opt/hbase

4.查找Java安装路径
echo $JAVA_HOME

5.配置hbase-env.sh文件
vim /opt/hbase/conf/hbase-env.sh

6.按键:set nu回车设置行号,部分截图如下

7.按键27gg,光标定位到27行,部分截图如下

8.按键 i ,更改代码如下:
export JAVA_HOME=/usr/lib/java-1.8

9.按键Esc,按键128gg,光标定位到128行,部分截图如下

10.按键 i ,设置HBase使用外部独立Zookeeper集群,更改代码如下:
export HBASE_MANAGES_ZK=false

11.按键Esc,按键”:wq!”保存退出。
12.配置hbase-site.xml文件
vim /opt/hbase/conf/hbase-site.xml

13.按键:set nu回车设置行号,部分截图如下

14.按键24gg,光标定位到24行,部分截图如下

15.按键 i ,在标签之间填加代码如下:
<property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value>
</property>
<property><name>hbase.zookeeper.property.dataDir</name><value>/root/hbase</value>
</property>
<property><name>dfs.datanode.max.transfer.threads</name><value>4096</value>
</property>
<property><name>hbase.rootdir</name><value>hdfs://master:8020/hbase</value>
</property>
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>

16.按键Esc,按键”:wq!”保存退出。
17.配置regionservers文件
vim /opt/hbase/conf/regionservers

18.按键dd,删除第一行“localhost”,截图如下

19.按键 i ,填加代码如下:
slave1
slave2

按键Esc,按键”:wq!”保存退出。
20.配置hbase环境变量
vim ~/.bashrc

21.按键“shift+g”组合键,达到页面底部。
22.按键 i ,填加代码如下:
export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin

23.按键Esc,按键”:wq!”保存退出。
24.刷新配置文件,使新加Hbase环境变量生效。
source ~/.bashrc

25.拷贝master主机“.bashrc”文件到slave1、slave2从机“~”下。
scp ~/.bashrc slave1:~/
scp ~/.bashrc slave2:~/

26.拷贝配置好的hbase文件夹到slave1、slave2从机“/opt”下。
scp -r /opt/hbase slave1:/opt

scp -r /opt/hbase slave2:/opt

27.切换至“从节点1”机器,双击桌面“Xfce终端”图标打开命令窗口。刷新配置文件,使新加Hbase环境变量生效,退回master主机。
ssh slave1
source ~/.bashrc
exit

28.切换至“从节点2”机器,双击桌面“Xfce终端”图标打开命令窗口。刷新配置文件,使新加Hbase环境变量生效,退回master主机。
ssh slave2
source ~/.bashrc
exit

4.HBase集群环境启动、验证和停止
1.切换至“主节点”,双击桌面“Xfce终端”图标打开命令窗口,启动Hadoop。
start-all.sh

2.启动HBase。
start-hbase.sh

3.查看守护进程。其中HMaster为HBase的守护进程。
jps

4.切换至“从节点1”,查看守护进程。其中HRegionServer为HBase的守护进程。
ssh slave1
jps
exit

5.切换至“从节点2”,查看守护进程。其中HRegionServer为HBase的守护进程。
ssh slave2
jps
exit

6.切换至“主节点”,查看HDFS平台上Hbase。
hdfs dfs -lsr /hbase

7.启动HBase-shell。
hbase shell

8.HBase下建立带有一个列族family1的表table1。
create 'table1','family1'

9.向表table1中列族family1下建立列为column1,并向列中播入数据value-1。
put 'table1','myrow-1','family1:column1','value-1'

10.查询表table1中内容。
scan 'table1'

11.删除表。
disable 'table1'
drop 'table1'

12.退出HBase shell。
quit

13.停止Hbase进程。注意:这里速度有点慢,可能需要稍等几分钟。
stop-hbase.sh

14.停止Hadoop进程。
stop-all.sh

15.停止“主节点”,即master机上的zookeeper进程。
zkServer.sh stop

16.停止“从节点1”,即slave1机上的zookeeper进程。
ssh slave1
zkServer.sh stop
exit

17.停止“从节点2”,即slave2机上的zookeeper进程。
ssh slave2

zkServer.sh stop

相关文章:
HBase集群环境搭建与测试
🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi 本文章收录于专栏(点击传送):【大数据学习】 💓💓持续更新中,感谢各位前辈朋友们支持…...
【iOS】Masonry的基本使用
文章目录 前言一、使用Masonry的原因二、约束的常识三、Masonry的简单使用四、Masonry的用例总结 前言 暑假安装了cocoapods,简单使用其调用了SVGKit,但是没有学习Masonry,特此总结博客记录Masonry的学习 一、使用Masonry的原因 Masonry是一…...
浅析SAS协议:链路层
文章目录 概述原语通用原语连接管理原语连接通信原语 地址帧IDENTIFY地址帧OPEN地址帧 链路复位Link ResetHard ResetSATA的Link Reset 连接管理建立连接连接仲裁 流量控制SSP流控Credit Advance SMP流控 相关参考 概述 SAS链路层用于定义原语、地址帧以及连接相关的内容&…...
ES6之浅尝辄止1:class的用法
class是es6新增的一种语法糖,用于简化js中构造类的过程 1.es5中如何构造类? function Person(name,age){this.name name;this.age age; } Person.prototype.sayName function(){return this.name; } let p1 new Person(小明,22);2.es6中的class方式…...
django-发送邮件
一、业务场景 业务警告 邮箱验证 密码找回 二、邮件相关协议 1.SMYTP(简答邮件传输协议 25端口) 属于“推送”协议 负责发送 2.IMAP(交互式邮件访问协议,应用层协议,143端口) 用于从本地邮件客户端…...
IP私域系统搭建课,视频号打通你的个人ip私域
标题:搭建IP私域系统课程:打通视频号,打造个人IP私域的关键策略 导语: 在当今信息爆炸的时代,个人IP(知识产权)的价值越来越受到重视。搭建IP私域系统通过打通视频号,成为了打造个人…...
咸虾米之一些快捷方式的操作,一行方块的左右滑动,方块在一区域内的任意移动
由于本着只学习微信小程序的目的,上面的几篇博文都是跟着黑马程序的课程走的!后面的就讲解uni-app的实验呢!一个人的精力是有限的,于是换了们课程继续深造微信小程序!!! 以下是在 .wxml中的一些…...
Linux 高级指令
十个常用高级Linux指令、其具体用法和示例: 1.grep:用于搜索指定文本内容,可以通过正则表达式匹配搜索。 用法示例:在当前目录下搜索包含关键词“hello”的文件并列出文件名: grep -r "hello" 2.find&a…...
江苏移动基于OceanBase稳步创新推进核心数据库分布式升级
*本文首发自《中国电信业》 数字经济时代,数据库作为企业核心数据存储、处理、挖潜等方面的关键载体,重要性日益凸显。对于运营商而言,数据库具有行业用户数量多、访问数量多、业务复杂度高、数据安全性高、响应要求性高以及需要 7*24 小时服…...
6. 删除顺序表中的重复元素
p17 6. 删除顺序表中的重复元素 #include<stdio.h> #include<stdlib.h> #define MaxSize 100 typedef struct {int* data;int capacity;int length; }SeqList;int InitList(SeqList &L) {L.data (int*)malloc(MaxSize * sizeof(int));L.capacity MaxSize;L.l…...
Vue——axios的二次封装
文章目录 一、请求和传递参数1、get 请求2、post 请求3、axios 请求配置 二、axios 的二次封装1、配置拦截器2、发送请求 三、API 的解耦1、配置文件对应的请求2、获取请求的数据 四、总结 一、请求和传递参数 在 Vue 中,发送请求一般在 created 钩子中,…...
JavaScript Web APIs -03 事件流、事件委托、其他事件(加载、滚动、尺寸)
Web APIs - 03 文章目录 Web APIs - 03事件流捕获和冒泡阻止冒泡 事件委托其他事件页面加载事件元素滚动事件页面尺寸事件 元素尺寸与位置 进一步学习 事件进阶,实现更多交互的网页特效,结合事件流的特征优化事件执行的效率 掌握阻止事件冒泡的方法理解事…...
QT DAY 2
window.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//this->resize(430,330);this->resize(QSize(800,600));// this…...
ELK安装、部署、调试(三)zookeeper安装,配置
1.准备 java安装,系统自带即可 2.下载zookeeper zookeeper.apache.org上可以下载 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local mv apache-zookeeper-3.7.1-bin zookeeper 3.配置zookeeper mv zoo_sample.cfg zoo.cfg /usr/local/zookeeper/con…...
企业级智能PDF及文档处理SDK GdPicture.NET 14.2 Crack
企业级智能PDF及文档处理SDK GdPicture.NET 提供了一组非常先进的 API,这些 API 利用了人工智能、机器学习和模糊逻辑算法等尖端技术。经过超过 15 年的持续研究和对创新的专注,我们的 SDK 已成为市场上针对PDF、OCR、条形码、文档成像和各种格式最全面的…...
应用程序管理工具
应用程序管理是 DevOps 的重要组成部分。它可以定义为在所有阶段监控和管理软件应用程序的可用性、运行状况、性能和功能的过程,包括规划、设计、构建、测试、部署、维护和更新。这意味着应用程序从概念到停止都受到监控。 应用程序管理的重要性 管理应用程序可确…...
当数据集较小时,调节学习率的方法
当数据集较小时,调节学习率的方法 当数据集较小时,调节学习率的方法可以参考以下步骤: 当数据集较小时,调节学习率的方法可以参考以下步骤: 先尝试一个较小的学习率,如0.001,或者根据经验设置一…...
JS实现数组的扁平化(ES6实现)----例子+难点解析
要求: 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中如: [1, [3, [2, 4]]] > [1, 3, 2, 4] 基础知识: arr.concat() 语法:数组.concat(其他数组) 作用:将其他数组和数组拼接在一起 返回值:拼接好的新数…...
git 提交错误,回滚到某一个版本
git log 查看版本号 commit 后面跟的就是版本号git reset --hard 版本号 (就可以回滚到你要去的版本)git push -f (因为本地回滚了,所以和远程会差几个版本。所以这时候只有强制推送,覆盖远程才可以)...
数据结构:八种数据结构大全
数据结构 1.1 数据结构概述 数据结构是计算机存储、组织数据的方式;通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能;常用的数据结构有:数组(Arrayÿ…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...

