大数据实验4-HBase
一、实验目的
- 阐述HBase在Hadoop体系结构中的角色;
- 能够掌握HBase的安装和配置方法
- 熟练使用HBase操作常用的Shell命令;
二、实验要求
- 学习HBase的安装步骤,并掌握HBase的基本操作命令的使用;
三、实验平台
- 操作系统:
- Linux(Ubuntu16.04);
- Hadoop版本:3.1.3;
- JDK版本:1.8;
- HBase版本:2.2.2
- 实验内容、结果及分析(直接在题目后面列出实验结果以截图及分析)
(实验代码参考网址:HBase2.2.2安装和编程实践指南_厦大数据库实验室博客)
(一)HBase安装配置(请根据你的Hadoop版本在官网:
https://hbase.apache.org/book.html#basic.prerequisiteshttps://hbase.apache.org/book.html查看匹配的HBase版本进行安装)
1、减压,配置环境
2、 添加HBase权限
3、确定hbase安装成功
- 单机安装配置、分析各配置项的含义,并启动HBase验证安装是否成功,结束后关闭HBase;
1、配置hbase-env.sh和hbase-site.xml文件以及配置项含义分析:
(1)hbase-env.sh里面添加:
①设置 JAVA_HOME 环境变量
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
含义:指定 Java 安装目录,确保 HBase 能够找到正确的 Java 环境。
②设置 HBASE_MANAGES_ZK 为 true
export HBASE_MANAGES_ZK=true
含义:在伪分布式模式下,设置为 true 可以避免依赖外部的 ZooKeeper 服务,简化部署和管理。控制 HBase 是否自行管理 ZooKeeper,简化伪分布式模式下的部署。
true:表示 HBase 将自行启动和管理 ZooKeeper 实例。这适用于伪分布式和单节点部署。
false:表示 HBase 将使用外部提供的 ZooKeeper 服务。
③设置 HBASE_CLASSPATH 环境变量
export HBASE_CLASSPATH=/usr/local/hbase/conf
含义:确保 HBase 能够找到配置文件和其他必要的类库,指定 HBase 启动时需要包含的额外类路径,通常包括配置文件和其他库。
(2)hbase-site.xml添加:
配置项含义分析:
hbase.rootdir: 这个配置项用于指定 HBase 数据的存储位置。如果不设置,HBase 默认会将数据存储在 /tmp/hbase-${user.name},这意味着每次重启系统时,数据都会丢失。通过设置为 file:///usr/local/hbase/hbase-tmp,可以确保数据持久化存储在指定的目录中。
2、HBase验证安装成功:
3、HBase关闭并验证:
- 伪分布模式配置、分析各配置项的含义,启动HBase验证是否安装成功;
1、配置/usr/local/hbase/conf/hbase-env.sh
2、配置/usr/local/hbase/conf/hbase-site.xml
配置项含义分析
①hbase.rootdir:这个配置项用于指定 HBase 数据的存储位置。在伪分布式模式下,HBase 数据存储在 HDFS上,这里设置为 hdfs://Localhost:9000/hbase,表示数据存储在运行在本地的HDFS上,NameNode 监听在端口 9000。
②hbase.cluster.distributed: 这个配置项用于设置 HBase 是否运行在分布式模式。设置为true 表示 HBase 运行在分布式模式。
③hbase.unsafe.stream.capability.enforce: 这个配置项用于控制 HBase 是否强制执行流能力。在某些情况下,设置为false 可以避免一些兼容性问题。
3、测试运行HBase
(1)登录ssh
(2)启动HBase
中途出现问题
原因分析:namenode与datanode在其他进程中运行没有关闭
解决办法:尝试重新启动它们之前,先停止已经运行的 NameNode 和 DataNode。
4、切换目录至/usr/local/hbase;再启动HBase:
进入shell界面:
5、关闭Hbase并验证成功关闭:
- 配置系统环境变量PATH,添加HBase中bin和sbin路径到PATH中,验证配置是否成功;
1、配置:
2、验证成功
3、返回当前用户的主目录,关闭HBase,并查看是否关闭成功;
- HBase Shell命令完成下列任务:
启动HBase:
进入HBase:
- 创建一个新表,以”Student”命名,如果出错请分析错误原因并改正,实现表的创建;
- 查看创建的”Student”表的结构;
- 向已经创建好的表添加列族“info”、”scores”;
- 在“scores”列族中添加列“english”、”math”、“computer”;
- 向表中添加两条完整的数据记录,数据自定义,同时自定义列族“info”中相关列的信息;
- 查看表“Student”的所有记录数据;
- 根据指定的行键值查询对应数据记录的所有数据;
- 统计“Student”表中数据的行数
- 删除指定行键对应数据中所有的成绩数据;
- 清空指定的表的所有记录数据,并验证结果;
- 创建一个可以保存修改过程中最新的3个版本数据的表,表的名称和列族自定,完成数据的多次添加并查看指定版本的数据内容;
- 总结HBase初次使用的优缺点;
优点:
水平扩展性:HBase设计用于水平扩展,可以处理PB级别的数据。
高性能:HBase提供了快速的读写访问,特别是对于随机实时读/写访问。
列族模型:HBase的列族模型允许用户定义数据的存储方式,有助于优化查询性能。
强一致性:HBase提供了强一致性的读写操作。
可伸缩的架构:HBase可以运行在廉价的硬件上,可无缝地扩展到成千上万的节点。
与Hadoop生态系统的集成:HBase与Hadoop生态系统紧密集成,可以与其他Hadoop组件(如HDFS、MapReduce、Hive、Pig等)一起工作。
自动分片:HBase表会自动根据行键进行分片,从而实现负载均衡。
缺点:
学习曲线:对于新手来说,HBase的学习曲线可能比较陡峭,因为它与传统的关系型数据库有很大不同。
缺乏事务支持:虽HBase支持行级别的事务,但它不支持跨行或跨表的复杂事务。
有限的查询能力:HBase不支持SQL查询,虽然有像Phoenix这样的项目试图提供SQL接口,但它们通常不如传统数据库的查询能力那么强大。
维护复杂性:HBase需要ZooKeeper进行集群协调,这增加了系统的复杂性。
数据模型限制:HBase的列族模型限制了数据模型的灵活性,不适合所有类型的数据存储需求。
数据一致性问题:虽然HBase提供了强一致性,但在某些情况下,如网络分区或服务器故障,可能会出现数据一致性问题。
资源消耗:HBase是一个资源密集型的系统,尤其是在大型集群中,可能会消耗大量的内存和CPU资源
- 问题和收获
问题:
数据模型设计:确定如何设计表、行键和列族很具有挑战性。
故障恢复:在集群出现故障时,恢复数据和服务会很复杂。
监控和维护:监控HBase集群的性能和健康状况需要专业的工具和技能。
版本兼容性:不同版本的HBase或Hadoop生态系统组件之间存在兼容性问题。
安全性:确保数据的安全性和遵守相关的数据保护法规很复杂。
收获:
分布式系统知识:通过使用HBase,你可以获得关于分布式系统架构、数据一致性和容错机制的深入理解。
大数据技能:HBase是处理大数据的有力工具,使用它可以帮助你掌握处理大规模数据集的技能。
性能优化:在调优HBase的过程中,你将学会如何优化数据库性能,包括读写路径、内存使用和存储。
相关文章:
大数据实验4-HBase
一、实验目的 阐述HBase在Hadoop体系结构中的角色;能够掌握HBase的安装和配置方法熟练使用HBase操作常用的Shell命令; 二、实验要求 学习HBase的安装步骤,并掌握HBase的基本操作命令的使用; 三、实验平台 操作系统࿱…...
CentOS:A服务器主动给B服务器推送(上传),B服务器下载A服务器文件(下载)
Linux:常识(bash: ip command not found )_bash: ip: command not found-CSDN博客 rsync 中断后先判断程序是否自动重连:ps aux | grep rsync 查看目录/文件是否被使用(查询线程占用):lsof /usr/local/bin/mongodump/.B_database1.6uRCTp 场景:MongoDB中集合非常大需要…...
如何选择服务器
如何选择服务器 选择服务器时应考虑以下几个关键因素: 性能需求。根据网站的预期流量和负载情况,选择合适的处理器、内存和存储容量。考虑网站是否需要处理大量动态内容或高分辨率媒体文件。 可扩展性。选择一个可以轻松扩展的服务器架构,以便…...
el-table最大高度无法滚动
解决el-table同时使用fixed和计算的最大高度时固定右边的列无法跟随滚动的问题 原因:el-table组件会根据传入的 max-height 计算表格内容部分 和 fixed部分的最大高度,以此来生成滚动条和产生滚动效果,当传入的 max-height 为一个计算的高度…...
YOLO-FaceV2: A Scale and Occlusion Aware Face Detector
《YOLO-FaceV2:一种尺度与遮挡感知的人脸检测器》 1.引言2.相关工作3.YOLO-FaceV23.1网络结构3.2尺度感知RFE模型3.3遮挡感知排斥损失3.4遮挡感知注意力网络3.5样本加权函数3.6Anchor设计策略3.7 归一化高斯Wasserstein距离 4.实验4.1 数据集4.2 训练4.3 消融实验4.3.1 SEAM块4…...
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
目录 一、准备工作 二、理解文本数据格式 三、开发文本数据转换为Excel工具 读取CSV文件 将DataFrame写入Excel文件 处理其他格式的文本数据 读取纯文本文件: 读取TSV文件: 四、完整代码与工具封装 五、使用工具 六、总结 在数据分析和处理的日常工作中,我们经常…...
全卷积网络(Fully Convolutional Networks, FCN)
全卷积网络(Fully Convolutional Networks, FCN) 什么是 FCN? 全卷积网络(Fully Convolutional Networks, FCN)是一种用于图像语义分割的深度学习模型。与传统的卷积神经网络(CNN)不同&#x…...
【计算机网络】HTTP协议
一、网址 1.URL URL就是我们平时说的网址 2.urlencode/urldecode 像 / ? : 等这样的字符,已经被url当做特殊意义理解了。因此这些字符不能随意出现 如果某个参数中需要带有这些特殊字符,就必须先对特殊字符进行转义 -> urlencode 服务器收到url…...
IT服务团队建设与管理
在 IT 服务团队中,需要明确各种角色。例如系统管理员负责服务器和网络设备的维护与管理;软件工程师专注于软件的开发、测试和维护;运维工程师则保障系统的稳定运行,包括监控、故障排除等。通过清晰地定义每个角色的职责࿰…...
STM32总体架构简单介绍
目录 一、引言 二、STM32的总体架构 1、三个被动单元 (1)内部SRAM (2)内部闪存存储器 (3)AHB到APB的桥(AHB to APBx) 2、四个主动(驱动)单元 &#x…...
C++自动化测试:GTest 与 GitLab CI/CD 的完美融合
在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C项目中结合使用Google Test(GTe…...
Python 虚拟环境使用指南
Python 虚拟环境使用指南 博客 一、创建虚拟环境 在开始使用Python虚拟环境之前,我们需要先创建一个新的虚拟环境。 1. 基础创建流程 首先,进入您的项目目录: cd path\to\your\project然后使用以下命令创建虚拟环境: pytho…...
MySQL面试-1
InnoDB中ACID的实现 先说一下原子性是怎么实现的。 事务要么失败,要么成功,不能做一半。聪明的InnoDB,在干活儿之前,先将要做的事情记录到一个叫undo log的日志文件中,如果失败了或者主动rollback,就可以通…...
Harbor2.11.1生成自签证和配置HTTPS访问
文章目录 HTTPS的工作流程部署Harbor可参考上一篇文章生成自签证书1.修改/etc/hosts文件2.生成证书a.创建存放证书路径b.创建ca.key密钥c.创建ca.crtd.创建给Harbor服务器使用密钥 yunzhidong.harbor.com.keye.创建给Harbor服务器使用证书签名请求文件 yunzhidong.harbor.com.c…...
鸿蒙开发Hvigor插件动态生成代码
Hvigor允许开发者实现自己的插件,开发者可以定义自己的构建逻辑,并与他人共享。Hvigor主要提供了两种方式来实现插件:基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。 基于hvigorfile脚本…...
VSCode 新建 Python 包/模块 Pylance 无法解析
问题描述: 利用 VSCode 写代码,在项目里新建一个 Python 包或者模块,然后在其他文件里正常导入这个包或者模块时出现: Import “xxxx” could not be resolved Pylance (reportMissingImports) 也就是说 Pylance 此时无法解析我们…...
【论文笔记】Number it: Temporal Grounding Videos like Flipping Manga
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Number it: Temporal Grou…...
【C++】list模拟实现(详解)
本篇来详细说一下list的模拟实现,list的大体框架实现会比较简单,难的是list的iterator的实现。我们模拟实现的是带哨兵位头结点的list。 1.准备工作 为了不和C库里面的list冲突,我们在实现的时候用命名空间隔开。 //list.h #pragma once #…...
Java基础-组件及事件处理(下)
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 面板组件 说明 常见组件 JScrollPane常用构造方法 JScrollPane设置面板滚动策略的方法 JScrollPane滚…...
太通透了,Android 流程分析 蓝牙enable流程(应用层/Framework/Service层)
零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档࿰…...
《硬件架构的艺术》笔记(五):低功耗设计
介绍 能量以热量形式消耗,温度升高芯片失效率也会增加,增加散热片或风扇会增加整体重量和成本,在SoC级别对功耗进行控制就可以减少甚至可能消除掉这些开支,产品也更小更便宜更可靠。本章描述了减少动态功耗和静态功耗的各种技术。…...
【Ubuntu24.04】服务部署(虚拟机)
目录 0 背景1 安装虚拟机1.1 下载虚拟机软件1.2 安装虚拟机软件1.2 安装虚拟电脑 2 配置虚拟机2.1 配置虚拟机网络及运行初始化脚本2.2 配置服务运行环境2.2.1 安装并配置JDK172.2.2 安装并配置MySQL8.42.2.3 安装并配置Redis 3 部署服务4 总结 0 背景 你的服务部署在了你的计算…...
Java基础-组件及事件处理(中)
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 BorderLayout布局管理器 说明: 示例: FlowLayout布局管理器 说明: …...
从零开始学习数据库 day0(基础)
在当今的信息时代,数据已经成为了企业和组织最重要的资产之一。无论是电子商务平台,社交媒体,还是科研机构,几乎每个地方都离不开数据库。今天,我们将一起走进数据库的世界,学习它的基础知识,帮…...
【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?
博客主页: [青松] 本文专栏: NLP 大模型百面百过 【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么? 重要性:★★★ 💯 本题主要考察面试者对以下问题的理解: ① 数据特征和模…...
linux从0到1——shell编程9
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
【源码+文档+调试讲解】基于Hadoop实现的豆瓣电子图书推荐系统的设计与实现
摘 要 随着开数字化阅读的普及,豆瓣电子图书推荐系统应运而生,旨在为用户提供个性化的阅读体验。基于Hadoop的强大数据处理能力,该系统能够有效处理海量用户数据和书籍信息,通过复杂的算法模型为用户推荐高质量的内容。管理员功能…...
内存分配与回收策略
对象优先在Eden分配 大多数情况下,对象在新生代Eden中分配,当Eden区没有足够的空间按进行分配时,虚拟机将会引发一次Minor GC 。 在运行时通过-Xms20M、-Xmx20M、-Xmn10M这三个参数限制了Java 堆大小为20MB,不可扩展,…...
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
今天学Flink的关键技术–容错机制,用一些通俗的比喻来讲这个复杂的过程。参考自《离线和实时大数据开发实战》 需要先回顾昨天发的Flink关键概念 检查点(checkpoint) Flink容错机制的核心是分布式数据流和状态的快照,从而当分布…...
android-sdk 安装脚本
android-sdk 安装脚本 androidSdk_install.sh #!/bin/bash #[描述] android-sdk 安装# set -eu shopt -s expand_aliasesAndroid_SDK_D/app5/android-sdk-home/JAVA17_D/app/zulu17.48.15-ca-jdk17.0.10-linux_x64/#jdk17下载、解压 #https://www.azul.com/downloads/?version…...
【jvm】解释器
目录 1. 说明2. 工作原理3. 特点4. JVM解释器与JIT编译器的关系5. JVM解释器的优化 1. 说明 1.JVM(Java虚拟机)解释器是JVM的一个重要组成部分,负责将Java字节码指令翻译并执行为本地机器码。 2. 工作原理 1.读取字节码指令:JV…...
Node.js 安装与环境配置详解:从入门到实战
**标题:Node.js 安装与环境配置详解:从入门到实战** --- ### 一、Node.js 简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,允许开发者在服务器端运行 JavaScript 代码。凭借其事件驱动、非阻塞 I/O 模型,Nod…...
Centos使用docker搭建Graylog日志平台
日志管理系统有很多,比如ELK,Graylog,LokiGrafanaPromtail 适用场景: 1.如果需求复杂,服务器资源不受限制,推荐使用ELK(Logstash Elasticsearch Kibana)方案; 2.如果需求仅是将…...
Java基础-Java中的常用类(上)
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 String类 创建字符串 字符串长度 连接字符串 创建格式化字符串 String 方法 System类 常用方法 方…...
HTML 表单实战:从创建到验证
HTML表单是用于收集用户输入数据的一种方式,可以用于创建各种类型的表单,例如登录表单、注册表单、调查问卷表单等。本文将详细介绍表单元素的使用,并利用JavaScript实现对表单数据的验证。 HTML表单元素的使用 输入框<input> <i…...
Spring 框架七大模块(Java EE 学习笔记03)
核心容器模块(Core Container) 核心容器模块在Spring的功能体系中起着支撑性作用,是其他模块的基石。核心容器层主要由Beans模块、Core模块、Contex模块和SpEL模块组成。 (1)Beans模块。它提供了BeanFactory类&…...
【npm设置代理-解决npm网络连接error network失败问题】
【npm设置代理-解决npm网络连接error network失败问题】 创建vue项目出错创建vue项目连接网络失败 查看npm代理设置npm代理对于Clash Verge对于v2rayN自定义代理服务器 删除代理更换其他源查看当前源更改 npm 源切换回官方源临时切换源临时更换源创建vue项目 npm其他常用命令查…...
VUE 的前置知识
一、JavaScript----导图导出 1. JS 提供的导入导出机制,可以实现按需导入 1.1 在html页面中可以把JS文件通过 <script src"showMessage.js"></script> 全部导入 1.2 通过在JS文件中写export关键字导出通过 <script src"showMessage…...
Java基础-集合
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 前言 一、Java集合框架概述 二、Collection接口及其实现 2.1 Collection接口 2.2 List接口及其实现 …...
零基础上手WebGIS+智慧校园实例(1)【html by js】
请点个赞收藏关注支持一下博主喵!!! 等下再更新一下1. WebGIS矢量图形的绘制(超级详细!!),2. WebGIS计算距离, 以及智慧校园实例 with 3个例子!!…...
深入浅出分布式缓存:原理与应用
文章目录 概述缓存分片算法1. Hash算法2. 一致性Hash算法3. 应用场景Redis集群方案1. Redis 集群方案原理2. Redis 集群方案的优势3. Java 代码示例:Redis 集群数据定位Redis 集群中的节点通信机制:Gossip 协议Redis 集群的节点通信:Gossip 协议Redis 集群的节点通信流程Red…...
Spring AI 框架使用的核心概念
一、模型(Model) AI 模型是旨在处理和生成信息的算法,通常模仿人类的认知功能。通过从大型数据集中学习模式和见解,这些模型可以做出预测、文本、图像或其他输出,从而增强各个行业的各种应用。 AI 模型有很多种&…...
【人工智能】用Python和NLP工具构建文本摘要模型:使用NLTK和spaCy进行自然语言处理
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 文本摘要是自然语言处理(NLP)中的关键任务之一,广泛应用于新闻、博客、社交媒体和搜索引擎等场景。通过生成简洁而准确的文本摘要,我们可以大大提升信息处理效率。本文将探讨如何使用Python结合NLP工具…...
网络安全概论
一、 网络安全是一个综合性的技术。在Internet这样的环境中,其本身的目的就是为了提供一种开放式的交互环境,但是为了保护一些秘密信息,网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…...
Flask
Flask 是一个用 Python 编写的轻量级 Web 应用框架,被称为"微框架"。基于 WSGI(Web Server Gateway Interface)和 Jinja2 模板引擎。 Flask:https://flask.palletsprojects.com/en/stable/ jinja:https://ji…...
Java基础-内部类与异常处理
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、Java 内部类 什么是内部类? 使用内部类的优点 访问局部变量的限制 内部类和继承 内部…...
大语言模型---LoRA中损失值的计算
文章目录 概要损失计算流程小结 概要 Llama-7B模型的LoRA微调训练中,通过使用Cross-Entropy Loss来度量模型输出的预测分布和真实标签分布之间的距离,来衡量模型的准确性。 本文主要介绍LoRA中损失值的计算流程。 Cross-Entropy Loss作用:是…...
【初阶数据结构篇】双向链表的实现(赋源码)
文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗࿱…...
Linux: 进程地址空间(理解虚拟地址和页表)
目录 1. 虚拟地址 2. 进程地址空间分布 3. 描述进程地址空间 4. 内存管理——页表 5. 父子进程的虚拟地址关系 6. 页表标记位 6.1 读写权限 6.2 命中权限 7.为什么存在进程地址空间 1. 虚拟地址 #include <stdio.h> #include <unistd.h> #include <sy…...
基于python的机器学习(四)—— 聚类(一)
目录 一、聚类的原理与实现 1.1 聚类的概念和类型 1.2 如何度量距离 1.2.1 数据的类型 1.2.2 连续型数据的距离度量方法 1.2.3 离散型数据的距离度量方法 1.3 聚类的基本步骤 二、层次聚类算法 2.1 算法原理和实例 2.2 算法的Sklearn实现 2.2.1 层次聚类法的可视化实…...