【大数据技术基础 | 实验七】HBase实验:部署HBase
文章目录
- 一、实验目的
- 二、实验要求
- 三、实验原理
- 四、实验环境
- 五、实验内容和步骤
- (一)验证Hadoop和ZooKeeper已启动
- (二)修改HBase配置文件
- (三)启动并验证HBase
- 六、实验结果
- 七、实验心得
一、实验目的
- 掌握HBase基础简介及体系架构;
- 掌握HBase集群安装部署及HBase Shell的一些常用命令的使用;
- 了解HBase和HDFS及Zookeeper之间的关系。
二、实验要求
- 巩固学习下【大数据技术基础 | 实验一】配置SSH免密登录、【大数据技术基础 | 实验三】HDFS实验:部署HDFS、【大数据技术基础 | 实验五】ZooKeeper实验:部署ZooKeeper;
- 部署一个主节点,三个子节点的HBase集群,并引用外部Zookeeper;
- 进入HBase Shell通过命令练习创建表、插入数据及查询等命令。
三、实验原理
简介:HBase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统,它是基于列而不是基于行的模式,适合存储非结构化数据。
体系结构:HBase是一个分布式的数据库,使用Zookeeper管理集群,使用HDFS作为底层存储,它由HMaster和HRegionServer组成,遵从主从服务器架构。HBase将逻辑上的表划分成多个数据块即HRegion,存储在HRegionServer中。HMaster负责管理所有的HRegionServer,它本身并不存储任何数据,而只是存储数据到HRegionServer的映射关系(元数据)。HBase的基本架构如图所示:
四、实验环境
- 云创大数据实验平台:
- Java 版本:jdk1.7.0_79
- Hadoop 版本:hadoop-2.7.1
- ZooKeeper 版本:zookeeper-3.4.6
- HBase 版本:hbase-1.1.2
五、实验内容和步骤
本实验主要演示HBase的安装部署过程,因HBase依赖于HDFS和Zookeeper,所以该实验需要分为四个步骤。
首先,配置SSH无密钥登录(参考【大数据技术基础 | 实验一】配置SSH免密登录)。
其次,安装Hadoop集群(参考【大数据技术基础 | 实验三】HDFS实验:部署HDFS)。
然后,安装Zookeeper集群(参考【大数据技术基础 | 实验五】ZooKeeper实验:部署ZooKeeper)。
最后,修改HBase配置文件,具体内容如下:
(一)验证Hadoop和ZooKeeper已启动
通过jps
命令验证Hadoop和ZooKeeper已启动:
jps
(二)修改HBase配置文件
将HBase安装包hbase.1.1.2.tar.gz
解压到/usr/cstor
目录,并将hbase.1.1.2目录改名为hbase,且所属用户改成root:root。
tar -zxvf hbase.1.1.2.tar.gz -c /usr/cstor/hbase
mv /usr/cstor/hbase.1.1.2 /usr/cstor/hbase
chown -R root:root /usr/cstor/hbase
以上操作实验平台已经事先做好了。我们直接进入到hbase目录下:
cd /usr/cstor/hbase
ls
1. 配置hbase-env.sh文件
进入解压目录下,配置conf目录下的/usr/cstor/hbase/conf/hbase-env.sh
文件,设置如下:
vim /usr/cstor/hbase/conf/hbase-env.sh
- Java安装路径: (需根据实际情况指定)
export JAVA_HOME=/usr/local/jdk1.7.0_79
- 不使用HBase自带的Zookeeper:
export HBASE_MANAGES_ZK=false
2. 配置hbase-site.xml文件
配置conf目录下的hbase-site.xml
文件,设置如下:
vim /usr/cstor/hbase/conf/hbase-site.xml
<configuration><property><name>hbase.rootdir</name><value>hdfs://master:8020/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>slave1,slave2,master</value></property><property><name>hbase.tmp.dir</name><value>/usr/cstor/hbase/data/tmp</value></property>
</configuration>
3. 配置regionservers文件
配置conf目录下的regionservers
文件,设置如下:
vim /usr/cstor/hbase/conf/regionservers
slave1
slave2
配置完成后,将hbase目录传输到集群的其它节点:
scp -r /usr/cstor/hbase root@slave1:/usr/cstor
scp -r /usr/cstor/hbase root@slave2:/usr/cstor
(三)启动并验证HBase
接着,启动HBase,并简单验证HBase,如下:
在主节点master进入hbase解压目录的bin目录,启动HBase服务进程(已启动Zookeeper):
cd /usr/cstor/hbase/bin
./start-hbase.sh
启动完HBase后,使用jps
命令查看进程:
在master服务器上,可以看到HMaster进程;在slave1~2上,可以看到HRegionServer进程。这样,HBase就启动成功了。
通过以下命令进入HBase shell界面:
./hbase shell
在shell里创建表:
create 'testhbase' , 'f1'
查询所有表名:
list
查看表结构信息:
describe 'testhbase'
在shell里插入数据:
put 'testhbase', '001', 'f1:name', 'aaa'
在shell里查询:
scan 'testhbase'
删除表,先disable再drop:
disable 'testhbase'
drop 'testhbase'
退出shell:
quit
六、实验结果
HBase启动成功后,进入shell界面,用shell命令简单操作HBase数据库验证HBase成功安装,验证结果如图所示。
HBase安装成功后,可以通过访问HBase WEB页面(http://master:16010)来查看HBase集群的一些基本情况,如图所示。(这里的master要替换为对应的IP地址)
七、实验心得
在进行HBase实验的过程中,我深刻体会到了HBase作为一个分布式、可扩展的NoSQL数据库的独特优势。HBase的设计理念强调高吞吐量和低延迟,这使得它非常适合处理大规模数据存储和实时数据访问。
首先,我在实验中学习了HBase的基本架构。HBase是建立在Hadoop之上的,它利用Hadoop的HDFS作为底层存储。通过理解RegionServer、HMaster和Zookeeper的协作机制,我认识到HBase是如何实现高可用性和容错性的。尤其是Zookeeper在HBase中起到了关键的协调作用,确保了系统的一致性和稳定性。
在实际操作中,我体验到了HBase的表设计与传统关系型数据库的显著不同。在HBase中,表的设计更为灵活,允许动态列族的添加和删除。这种灵活性使得我们可以更方便地进行数据建模,尤其是在处理多样化和不断变化的数据时。此外,实验中我还实践了HBase的CRUD操作,通过Java API进行数据的插入、查询、更新和删除。尽管最初遇到了一些API使用上的困惑,但在查阅文档和反复试验后,我逐渐掌握了如何高效地进行数据操作。HBase的Scan和Get操作让我能够快速检索所需数据,极大提高了数据处理效率。
同时,我也注意到HBase在处理海量数据时的性能优势。在对大规模数据集进行测试时,HBase表现出色,能够迅速响应查询请求,显示出其高效的性能。这使我意识到,HBase非常适合大数据分析和实时数据处理的场景。在实验的最后阶段,我尝试对HBase进行一些基本的性能调优,了解了如预分区、缓存等优化策略。这些措施能够有效提升HBase的读写性能,为后续的应用提供了更好的支持。
总的来说,这次HBase实验让我对分布式数据库的架构和操作有了更加深入的理解。通过实践,我不仅学会了如何使用HBase,还认识到了在实际应用中如何根据需求进行设计和优化。这将对我未来的数据处理和分析工作产生积极的影响。
附:以上文中的数据文件及相关资源下载地址:
链接:https://pan.quark.cn/s/356a503ecf3e
提取码:khqu
相关文章:

【大数据技术基础 | 实验七】HBase实验:部署HBase
文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤(一)验证Hadoop和ZooKeeper已启动(二)修改HBase配置文件(三)启动并验证HBase 六、实验结果七、实验心得 一、实验目的 掌握…...

Android进程保活,lmkd杀进程相关
lmk原理 Android进程回收之LowMemoryKiller原理 lmkd 更新进程oomAdj; 设备端进程被杀可能原因...

SDL 播放PCM
SDL2播放PCM使用SDL2播放PCM音频采样数据。SDL实际上是对底层绘图API(Direct3D,OpenGL)的封装,使用起来明显简单于直接调用底层API。 测试的PCM数据采用采样率44.1k, 采用精度S16SYS, 通道数2 函数调用步骤如下: [初始化]SDL_In…...

基于MPPT最大功率跟踪的光伏发电蓄电池控制系统simulink建模与仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于MPPT最大功率跟踪的光伏发电蓄电池控制系统simulink建模与仿真。本系统包括PV模块,电池模块,电池控制器模块,MPPT模块,PWM模…...

深入解析Vue3:从入门到实战(详细版)
文章目录 前言一、Vue3简介官网地址主要特点 二、安装与创建Vue3项目使用Vue CLI创建项目使用Vite创建项目 三、Composition API详解Setup函数ref与Reactive生命周期钩子计算属性和监听器 四、新特性与优化响应式系统更好的TypeScript支持类型定义类型推断新组件全局API重构更好…...

Pr 视频效果:ASC CDL
视频效果/颜色校正/ASC CDL Color Correction/ASC CDL ASC CDL ASC CDL效果通过对红、绿、蓝三个原色通道的独立调整,实现对图像色彩的精确控制。在此基础上,还可用于调整处理后图像的整体饱和度。 ◆ ◆ ◆ 效果选项说明 斜率 Slope、偏移 Offset和功…...

C++ --- Socket套接字的使用
目录 一.什么是Socket套接字? 二.Socket的使用: 前置步骤: 为什么要加入 WSAStartup 和 WSACleanup ? 1.创建Socket: 2.绑定Socket: 3.服务端监听连接请求: 4.服务端接受客户端连接&…...

MG协议转换器:制氢行业的数字桥梁
在新能源产业蓬勃发展的今天,制氢行业正迎来前所未有的发展机遇。作为清洁能源的重要组成部分,氢气的生产与利用不仅关乎环境保护,更是推动能源结构转型的关键一环。然而,在制氢行业的数字化转型进程中,数据的传输与处…...

人工智能技术的未来:变革生活与工作的潜力
随着人工智能(AI)技术的不断发展,我们已经见证了其在各行各业的巨大变革。无论是在医疗、商业还是日常生活中,AI都正在悄然改变着我们的工作方式和生活方式。未来,人工智能的应用前景广阔,它将继续深入我们…...

D60【python 接口自动化学习】- python基础之数据库
day60 数据库定义 学习日期:20241106 学习目标:MySQL数据库-- 128:数据库定义 学习笔记: 无处不在的数据库 数据库如何存储数据 数据库管理系统(数据库软件) 数据库和SQL的关系 总结 数据库就是指数据…...

零基础大龄程序员如何转型AI大模型,系统学习路径与资源推荐!!
前言 随着科技的飞速发展,AI大模型浪潮席卷全球,相关岗位炙手可热。在这个背景下,许多大龄程序员开始思考如何转型,以适应时代的变化。结合自身编程基础,大龄程序员可以学习机器学习、深度学习算法,投身于…...

vue3+vant实现使用van-picker实现三级级联菜单展示(含递归遍历)
1、递归遍历三级展示,禁用自动弹起软键盘、设置文档自动换行避免过长文本省略号展示 <div class"text_div"><van-fieldclass"span_text":center"true"v-model"jobLevelCodeText"is-linklabel"任职岗位"…...

oracle-函数-grouping sets(x1,x2,x3...)的妙用
GROUPING SETS 允许你为多个列组合生成分组汇总。它类似于多个 GROUP BY 子句的 UNION ALL 操作,但更加简洁和高效 首先:创建表及接入测试数据 create table students (id number(15,0), area varchar2(10), stu_type varchar2(2), score number(20,2))…...

人工智能在医疗病例诊断中的应用与展望
人工智能在医疗病例诊断中的应用与展望 摘要: 本文探讨了人工智能在医疗病例诊断中的卓越应用、显著优势、面临的挑战及应对策略,以及未来展望。人工智能在医学影像诊断、病理诊断和辅助临床诊断方面展现出巨大潜力,为医学研究和临床治疗带来…...

OceanBase 安装使用详细说明
OceanBase 安装使用详细说明 一、系统环境要求二、安装OceanBase环境方案一:在线下载并安装all-in-one安装包方案二:离线安装all-in-one安装包安装前的准备工作三、配置OceanBase集群编辑配置文件部署和启动集群连接到集群集群状态和管理四、创建业务租户和数据库创建用户并赋…...

CI_CD
什么是CI/CD 在前端开发中,CI/CD 是 Continuous Integration(持续集成)和 Continuous Deployment/Continuous Delivery(持续部署/持续交付)的简称。它是一种软件开发实践,自动化了应用的构建、测试和发布过…...

Linux -- 初识线程
目录 线程的初步认识 为什么需要线程 怎么让代码分成多个执行流并发执行呢? 管理线程 线程的初步认识 线程是进程内部的一个执行分支,线程是CPU调度的基本单位。 在Linux操作系统中,线程是程序执行流的最小单位。一个进程可以包含多个线…...

Uniapp底部导航栏设置(附带PS填充图标教程)
首先需要注册和登录ifconfont官网,然后创建项目添加需要的图标 创建和添加图标库请参考:Uniapp在Vue环境中引入iconfont图标库(详细教程) 打开iconfont官网,找到之前添加的图标库,下载png图片 如果需要的…...

单智能体carla强化学习实战工程介绍
有三个工程: Ray_Carla: 因为有的论文用多进程训练强化学习,包括ray分布式框架等,这里直接放了一个ray框架的示例代码,是用sac搭建的,obs没用图像,是数值状态向量值(速度那些)。 …...

潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验
潮玩宇宙方块兽系统开发正在推动潮玩与游戏的融合,通过个性化的UI设计和多游戏内嵌模式,为用户带来了独一无二的体验。本文将从可定制UI、多游戏内嵌功能以及系统实现等方面入手,探讨如何构建一个极具吸引力的潮玩宇宙方块兽系统。 一、可定制…...

什么是低代码?3000字低代码超全解读!
现在这个时代企业面对的挑战越来越复杂,尤其在软件开发和应用交付方面,因为传统开发过程复杂且费时,企业很难从传统的软件开发方式中迅速响应市场变化从而获利。 而低代码(Low-Code)平台的出现为企业提供了一种更加快…...

雷池社区版7.1新版本自定义NGINX配置分析
简单介绍雷池,是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。 雷池通过阻断流向 Web 服务的恶意 HTTP 流量来保护 Web 服务。雷池作为反向代理接入网络,通过在 Web 服务前部署雷池,可在 Web 服…...

[SAP ABAP] 面向对象程序设计-类和对象
面向对象开发的特点:封装、继承和多态 什么是类和对象? 类(CLASS)是创建对象的模板,对象(OBJECT)是类的实例 一个类可以创建多个对象 类 > 类型 对象 > 个体 在ABAP语言中,定义一个类,需要包含定义(defin…...

『大模型笔记』IBM技术团队:什么是智能体型RAG!
『大模型笔记』IBM技术团队:什么是智能体型RAG! 文章目录 一. 『大模型笔记』IBM技术团队:什么是智能体型RAG!二. 参考文献一. 『大模型笔记』IBM技术团队:什么是智能体型RAG! ✅检索增强生成(RAG)是一种结合检索和生成能力的技术,通过从向量数据库检索相关信息作为上…...

WPF 中 NavigationWindow 与 Page 的继承关系解析
官网解析: NavigationWindow 类 | Page 类 public class BaseWindow: NavigationWindow{} public partial class CountPage : Page{} 都是创建的WPF界面有什么区别? 在 WPF(Windows Presentation Foundation)开发中&#…...

WebRTC基础理论和通话原理
WebRTC理论知识 1.什么是WebRTC? WebRTC(Web RealTime Communication)是 Google于2010以6829万美元从 Global IP Solutions 公司购买,并 于2011年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让 WebRTC技术…...

NPU 可不可以代替 GPU
结论 先说结论,GPU分为可以做图形处理的传统意义上的真GPU,做HPC计算的GPGPU和做AI加速计算的GPGPU,所以下面分别说: 对于做图形处理的GPU,这个就和NPU 一样,属于DSA,没有替代性。当然…...

Vue3版本的uniapp项目运行至鸿蒙系统
新建Vue3版本的uniapp项目 注意,先将HbuilderX升级至最新版本,这样才支持鸿蒙系统的调试与运行; 按照如下图片点击,快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…...

部署stable-diffusion3.5 大模型,文生图
UI 使用推荐的ComfyUI,GitHub 地址,huggingface 需要注册登录,需要下载的文件下面有说明 Dockerfile 文件如下: FROM nvidia/cuda:12.4.0-base-ubuntu22.04 RUN apt-get update && apt-get install python3 pip git --n…...

数据采集之selenium模拟登录
使用Cookijar完成模拟登录 本博文爬取实例为内部网站,请sduter使用本人账号替换*********(学号),***(姓名)进行登录 from selenium import webdriver from selenium.webdriver.common.by import By from…...