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

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称

部署全分布模式HBase集群和实战HBase

实验性质

(必修、选修)

必修

实验类型(验证、设计、创新、综合)

综合

实验课时

2

实验日期

2023.11.07-2023.11.10

实验仪器设备以及实验软硬件要求

专业实验室(配有centos7.5系统的linux虚拟机三台

实验目的

1. 理解HBase数据模型。

2. 理解HBase体系架构。

3. 熟练掌握HBase集群的部署。

4. 了解HBase Web UI的使用。

5. 熟练掌握HBase Shell常用命令的使用。

6. 了解HBase Java API,能编写简单的HBase程序。

实验内容(实验原理、运用的理论知识、算法、程序、步骤和方法)

1.HBase集群的部署原理:

Hadoop生态环境: HBase通常部署在Hadoop生态环境上,依赖HDFS(Hadoop Distributed File System)存储数据。

ZooKeeper: HBase集群通常依赖ZooKeeper进行协调和管理,确保集群中的各个节点之间的一致性和可用性。

Master-RegionServer架构: HBase集群包含一个或多个Master节点和多个RegionServer节点。Master负责集群管理和元数据操作,而RegionServer存储和处理实际的数据。

HBase根目录: HBase在HDFS上有一个根目录,用于存储表的元数据和实际数据。这个目录会分散在HDFS上的不同节点上,实现了数据的分布式存储。

2. HBase实战的实验原理:

创建和管理表: 使用HBase Shell或API创建表,定义列簇、列等结构,并观察表的分布情况。

数据写入和读取: 向HBase表中写入数据,并通过不同方式进行读取,观察数据的分布和读写性能。

HBase过滤器: 使用HBase过滤器来检索满足特定条件的数据,例如列值、时间戳等。

HBase Coprocessors: 实验使用HBase Coprocessors来进行数据处理,例如计数、聚合等,加强HBase的功能。

监控和性能调优: 使用HBase的监控工具(如HBase Web UI)来监测集群的状态,观察各节点的负载情况,进行性能调优。

故障模拟: 模拟节点故障,观察HBase的自动恢复机制,确保集群的可用性和容错性。

数据一致性: 观察HBase在数据写入和更新时的一致性保证,了解HBase的事务特性。

备份和恢复: 实验备份和恢复HBase表,确保在发生灾难性事件时能够迅速还原数据。

实验步骤:

1.规划全分布模式HBase集群。

采用的是HBase版本是1.4.10,3个节点的机器名分别为master、slave1、slave2,IP地址依次为192.168.18.100、192.168.18.101、192.168.18.102

2.部署全分布模式HBase集群。

1). 初始软硬件环境准备

(1)准备3台机器,安装操作系统,编者使用CentOS Linux 7.5。

(2)对集群内每一台机器,配置静态IP、修改机器名、添加集群级别域名映射、关闭防火墙。

(3)对集群内每一台机器,安装和配置Java,要求Java 1.7或更高版本,编者使用Oracle JDK 8u191。

(4)安装和配置Linux集群中主节点到从节点的SSH免密登录

2). 获取HBase

HBase官方下载地址为https://hbase.apache.org/downloads.html,建议读者下载stable目录下的当前稳定版本。编者采用的HBase稳定版本是2019年6月10日发布的HBase 1.4.10,其安装包文件hbase-1.4.10-bin.tar.gz例如存放在master机器的/home/xuluhui/Downloads中。

3). 主节点上配置HBase

HBase所有配置文件位于$HBASE_HOME/conf下,具体的配置文件如前文图5-9所示。本实验中编者仅修改hbase-env.sh、hbase-site.xml、regionservers三个配置文件。

假设当前目录为“/opt/so/hbase-1.4.10”,切换到普通用户如root下,在主节点master上配置HBase的具体过程如下所示。

(1)编辑配置文件hbase-env.sh

hbase-env.sh用于设置Linux/Unix环境下运行HBase要用的环境变量,包括Java安装路径等,使用“vim conf/hbase-env.sh”对其进行如下修改。

设置JAVA_HOME,与master上之前安装的JDK位置、版本一致,将第27行的注释去掉,并修改为以下内容,修改后的效果如图所示。

export JAVA_HOME=/usr/java/jdk1.8.0_191/

编辑配置文件hbase-env.sh中JAVA_HOME

将第46、47行的PermSize作为注释,因为JDK8中无需配置,修改后的效果如图所示。

 编辑配置文件hbase-env.sh中PermSize

JDK8下若PermSize配置不作为注释或删掉,则启动HBase集群时会出现以下“warning”警告信息

设置HBASE_PID_DIR,修改进程号文件的保存位置,该参数默认为“/tmp”,将第120行修改为以下内容,如图所示。其中pids目录由HBase集群启动后自动创建。

 编辑配置文件hbase-env.sh中HBASE_PID_DIR

设置HBASE_MANAGES_ZK,将其值设置为false,即关闭HBase本身的ZooKeeper集群,将第128行修改为以下内容,如图所示。

编辑配置文件hbase-env.sh中HBASE_MANAGES_ZK

(2)编辑配置文件hbase-site.xml

hbase-site.xml是HBase核心配置文件,包括HBase数据存放位置、ZooKeeper集群地址等配置项。在master机器上修改配置文件hbase-site.xml,具体内容如下所示。

(3)编辑配置文件regionservers

Regionservers用于设置运行HRegionServer从进程的机器列表,每行1个主机名。在master机器上修改配置文件regionservers,该文件原来内容为“localhost”,修改为以下内容。

slave1

slave2

3.启动全分布模式HBase集群。

(1. 启动HDFS集群

在主节点上使用命令“start-dfs.sh”启动HDFS集群,使用的命令及运行效果如图5-23所示,从图5-23中可以看出,HDFS主进程NameNode成功启动,slave1和slave2上的从进程DataNode此处未展示,读者应保证HDFS所有主从进程都启动成功。

(2. 启动ZooKeeper集群

由于本实验中HBase并未自动管理ZooKeeper,所以用户需要手工启动ZooKeeper集群。在ZooKeeper集群的所有节点上使用命令“zkServer.sh start”启动ZooKeeper集群,编者为了方便,在节点master上使用ssh远程连接slave1、slave2,完成了各个节点ZooKeeper的启动工作

(3. 启动HBase集群

在主节点上启动HBase集群

而在从节点上:

4.验证全分布模式HBase集群。

主节点上的webUI的界面是:

从节点的webUI的界面:

5.使用HBase Web UI。

(1)使用hbase shell

(2)打开HBase主节点的Web UI,可以看到已建立的student表,如图所示。

从HBase集群主节点的Web UI界面上查看student表

(3)使用命令“zkCli.sh -server master:2181,slave1:2181,slave2:2181”连接ZooKeeper客户端,从ZooKeeper的存储树中也可以查看到建立的student表,如图所示。

从ZooKeeper存储树中可查看到student表

(4)由于HBase底层存储采用HDFS,所以打开HDFS Web UI,也可以查看到建立的student表,如图所示。

6. 关闭全分布模式HBase集群。

使用命令“stop-hbase.sh”

关闭HBase集群照本实验设置,关闭HBase集群后HBase主节点master上的主进程HMaster、HBase从节点slave1、slave2上的从进程HRegionServer消失,同时HBase主从节点上所有与HBase相关的ZooKeeper节点文件*.znode和进程号文件*.pid也依次消失。

实验结果与分析

1.集群启动: 通过Web UI、HBase Shell以及其他工具,确认HBase集群启动正常。

2.表的创建和管理: 通过HBase Shell和Web UI,查看已建立的表(例如,student表)。

3.数据写入和读取: 使用HBase Shell或API向表中写入数据,并通过不同方式进行读取,观察性能。

4.过滤器和Coprocessors: 使用过滤器检索数据,尝试使用Coprocessors进行数据处理,验证功能。

5.监控和性能调优: 使用HBase Web UI监测集群状态,观察各节点负载情况,进行性能调优。

6.故障模拟: 模拟节点故障,验证HBase的自动恢复机制,确保集群容错性。数据一致性: 观察数据写入和更新时的一致性,了解HBase的事务特性。

7.备份和恢复: 实验备份和恢复HBase表,确认在灾难性事件时能够迅速还原数据。

 

相关文章:

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 (必修、选修) 必修 实验类型(验证、设计、创新、综合) 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…...

手写字符识别神经网络项目总结

1.数据集 手写字符数据集 DIGITS,该数据集的全称为 Pen-Based Recognition of Handwritten Digits Data Set,来源于 UCI 开放数据集网站。 2.加载数据集 import numpy as np from sklearn import datasets digits datasets.load_digits() 3.分割数…...

八、Lua数组和迭代器

一、Lua数组 数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。 在 Lua 中,数组不是一种特定的数据类型,而是一种用来存储一组值的数据结构。 实际上,Lua 中并没有专门的数组类型&#xf…...

平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖

11 月 10 日,2023 金融街论坛年会同期举办了“第五届成方金融科技论坛——金融科技守正创新论坛”,北京金融产业联盟发布了“扬帆计划——分布式数据库金融应用研究与实践优秀成果”, 平凯星辰提报的实践报告——“国产 HTAP 数据库在金融规模…...

运算符展开、函数,对象,数组,字符串变化 集合

... 展开运算符 用于函数实参或者赋值号右边 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3 console.log(Math.max.apply(null, [1, 2, 3]))//3const o { a: 1, b: 2 }const obj { ...o, c: 3 }console.log(obj)//Object ... 剩余运算符 用于…...

NI自动化测试系统用电必备攻略,电源规划大揭秘

就像使用电脑之前需接通电源一样,自动化测试系统的电源选择也是首当其冲的问题,只不是这个问题更复杂。 比如,应考虑地理位置因素,因为不同国家或地区的公共电网所提供的线路功率有所不同。在电源布局和设备选型方面,有…...

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…...

外网IP和内网IP的区别

首先得先知道什么是ip地址,它就是唯一标识连接网络的设备的,即IP地址充当了设备在网络中的“住址”,使得设备能够相互通信和交换数据。 我们常听开发人员说外网内网,那么它们有什么区别呢? 外网可以理解为互联网&…...

Jquery动画特效

1&#xff0c;Jquery提供的特效方法 2&#xff0c;实例代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

Tableau连接到mysql数据库,配置驱动

Tableau想要连接mysql数据库进行数据的可视化&#xff0c;但是没有ODBC驱动&#xff0c;看了几篇文章写的&#xff0c;不是很清楚&#xff0c;顺便写下自己的思路。 1、下载mysql对应的ODBC驱动 首先要知道自己mysql的版本&#xff0c;然后下载对应的ODBC驱动。 MySQL :: Dow…...

HuggingFace学习笔记--AutoModel的使用

1--AutoModel的使用 官方文档 AutoModel 用于加载模型&#xff1b; 1-1--简单Demo 测试代码&#xff1a; from transformers import AutoTokenizer, AutoModelif __name__ "__main__":checkpoint "distilbert-base-uncased-finetuned-sst-2-english"t…...

Kafka常见面试问题

1、Kafka分区设计及主副本如何同步 Apache Kafka是一种分布式流处理平台&#xff0c;它使用分布式复制协议来实现高可用性和容错性。在Kafka中&#xff0c;每个主题&#xff08;topic&#xff09;都有一个或多个分区&#xff08;partition&#xff09;&#xff0c;每个分区都有…...

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…...

一、TIDB基础

官方文档&#xff1a;TiDB 产品文档 | PingCAP 文档中心 TIDB整个逻辑架构跟MYSQL类似&#xff0c;如下&#xff1a; TIDB集群&#xff1a;相当于MYSQL的数据库服务器&#xff0c;区别是MYSQL数据库服务器为单进程的&#xff0c;TIDB集群为分布式多进程的。 数据库&#xff…...

【微软技术栈】使用新的C#功能减少内存分配

本文内容 通过引用传递和返回引用安全上下文安全的上下文和 ref 结构统一内存类型通过参考安全提高性能 本节中介绍的技术可提高应用于代码中的热路径时的性能。热路径是代码库中在正常操作中经常重复执行的部分。将这些技术应用于不经常执行的代码将产生最小的影响。在进行任何…...

Linux shell编程学习笔记29:shell自带的 脚本调试 选项

Linux shell脚本的调试方法比较多&#xff0c;上次我们探讨和测试了shell内建命令set所提供的一些调试选项&#xff0c;其实 shell 本身也提供了一些调试选项。我们以bash为例来看看。 1 bash 的命令行帮助信息&#xff08;bash --help&#xff09; purleEndurer csdn ~ $ ba…...

分享几个可以免费使用GPT的网站

ChatGPT这个是国产的&#xff0c;里面可以使用3.5和4.0&#xff0c;免费用户每日都有各自的使用次数&#xff0c;反应迅速。文言一心国内百度的chart8新用户200次&#xff0c;但只能用3.5&#xff0c;响应速度有点慢 各有优缺点&#xff0c;大家看个人情况使用&#xff0c;个人…...

一. BEV感知算法介绍

目录 前言1. BEV感知算法的概念2. BEV感知算法数据形式3. BEV开源数据集介绍3.1 KITTI数据集3.2 nuScenes数据集 4. BEV感知方法分类4.1 纯点云方案4.2 纯视觉方案4.3 多模态方案 5. BEV感知算法的优劣6. BEV感知算法的应用介绍7. 课程框架介绍与配置总结下载链接参考 前言 自动…...

Scala如何写一个通用的游戏数据爬虫程序

以前想要获取一些网站数据的时候&#xff0c;都是通过人工手动复制粘贴&#xff0c;这样的效率及其低下。数据少无所谓&#xff0c;如果需要采集大量数据&#xff0c;手动就显得乏力了。半夜睡不着&#xff0c;爬起来写一段有关游戏商品数据的爬虫通用模板&#xff0c;希望能帮…...

前端命名规范总结

布局类&#xff1a;header, footer, container, main, content, aside, page, section 包裹类&#xff1a;wrap, inner 区块类&#xff1a;region, block, box 结构类&#xff1a;hd, bd, ft, top, bottom, left, right, middle, col, row, grid, span 列表类&#xff1a;list,…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...