大数据实验4-HBase

一、实验目的

  1. 阐述HBase在Hadoop体系结构中的角色;
  2. 能够掌握HBase的安装和配置方法
  3. 熟练使用HBase操作常用的Shell命令;

二、实验要求

  1. 学习HBase的安装步骤,并掌握HBase的基本操作命令的使用;

三、实验平台

  1. 操作系统:
  2. Linux(Ubuntu16.04);
  3. Hadoop版本:3.1.3;
  4. JDK版本:1.8;
  5. HBase版本:2.2.2
  • 实验内容、结果及分析(直接在题目后面列出实验结果以截图及分析)

(实验代码参考网址:HBase2.2.2安装和编程实践指南_厦大数据库实验室博客

(一)HBase安装配置(请根据你的Hadoop版本在官网:

https://hbase.apache.org/book.html#basic.prerequisitesicon-default.png?t=O83Ahttps://hbase.apache.org/book.html查看匹配的HBase版本进行安装)

1、减压,配置环境

2、 添加HBase权限

3、确定hbase安装成功

  1. 单机安装配置、分析各配置项的含义,并启动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关闭并验证:

  1. 伪分布模式配置、分析各配置项的含义,启动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并验证成功关闭:

  1. 配置系统环境变量PATH,添加HBase中bin和sbin路径到PATH中,验证配置是否成功;

1、配置:

2、验证成功

3、返回当前用户的主目录,关闭HBase,并查看是否关闭成功;

  •  HBase Shell命令完成下列任务:

启动HBase:

进入HBase:

  1. 创建一个新表,以”Student”命名,如果出错请分析错误原因并改正,实现表的创建;

  1. 查看创建的”Student”表的结构;
  1. 向已经创建好的表添加列族“info”、”scores”;
  1. 在“scores”列族中添加列“english”、”math”、“computer”;

  1. 向表中添加两条完整的数据记录,数据自定义,同时自定义列族“info”中相关列的信息;
  1. 查看表“Student”的所有记录数据;
  1. 根据指定的行键值查询对应数据记录的所有数据;
  1. 统计“Student”表中数据的行数

  1. 删除指定行键对应数据中所有的成绩数据;

  1. 清空指定的表的所有记录数据,并验证结果;
  1. 创建一个可以保存修改过程中最新的3个版本数据的表,表的名称和列族自定,完成数据的多次添加并查看指定版本的数据内容;
  1. 总结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的过程中,你将学会如何优化数据库性能,包括读写路径、内存使用和存储。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网安全隧道搭建-ngrok-frp-nps-sapp

1.ngrok 建立内网主机与公网跳板机的连接: 内网主机为客户机: 下载客户端执行 2.frp (1)以下为内网穿透端口转发 frp服务端配置: bindPort 为frp运行端口 服务端运行 ./frps -c frps.ini frp客户端配置&#xf…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后,内部的微服务之间是互联互通的,相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能,也采取点对点的方式,则外部系统会非常“头大”。因为在外部系统看来,它不需要也没…

前端:HTML (学习笔记)【1】

一,网络编程的三大基石 1,URL (1)url —— 统一资源定位符: 网址——整个互联网中可以唯一且准确的确定一个资源的位置。 【项目外】 网址——https://www.baidu.com/ …

实验室管理现代化:Spring Boot技术方案

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

如何在 Microsoft Edge 中设置代理: 快速而简单的方法

你知道在 Microsoft Edge 中设置代理可以大大提升浏览体验吗?无论您是想提高隐私保护、访问受地理位置限制的内容,还是想更高效地浏览网页,代理服务器都能改变一切。 本指南将介绍如何在 Microsoft Edge 中设置代理,解决常见的代…

Excel如何批量导入图片

这篇文章将介绍在Excel中如何根据某列数据,批量的导入与之匹配的图片。 准备工作 如图,我们准备了一张员工信息表以及几张员工的照片 可以看到,照片名称是每个人的名字,与Excel表中的B列(姓名)对应 的卢易…

【操作系统】操作系统的特征

操作系统的七个基本特征 并发性(Concurrence) 并发性是指操作系统在同一时间间隔内执行和调度多个程序的能力,提高资源利用率和系统效率。尽管多个任务可能在同一时刻看似同时进行,但实际上,CPU在多个任务之间快速切…

iPhone 17 Air看点汇总:薄至6mm 刷新苹果轻薄纪录

我们姑且将这款iPhone 17序列的超薄SKU称为“iPhone 17 Air”,Jeff Pu在报告中提到,我同意最近关于 iPhone 17超薄机型采用6 毫米厚度超薄设计的传言。 如果这一测量结果被证明是准确的,那么将有几个值得注意的方面。 首先,iPhone…

springboot嗨玩旅游网站

摘 要 嗨玩旅游网站是一个专为旅行爱好者打造的在线平台。我们提供丰富多样的旅游目的地信息,包括景点信息、旅游线路、商品信息、社区信息、活动推广等,帮助用户轻松规划行程。嗨玩旅游网站致力于为用户提供便捷、实用的旅行服务,让每一次旅…

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域,NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB,作为一款领先的NoSQL数据库,以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

潜水打捞系统的功能概率和使用方法_深圳鼎跃

潜水打捞系统是用于帮助打捞沉物,提供足够的浮力支持,确保沉物从水底浮升到水面。它是一种高强度的袋状结构,能够在水下提供调节浮力的功能,广泛应用于水下打捞、海上救援、沉船打捞等领域。 一、功能概述 潜水打捞系统主要功能为…

SpringMVC接收请求参数

(5)请求参数》五种普通参数 1.普通参数 代码块 RequestMapping("/commonParam") ResponseBody public String commonParam(String name,int age){System.out.println("普通参数传递 name > "name);System.out.println("普通…

CPU 内存加压工具 stress-ng 介绍

01 文章背景介绍 在实车测试时,除了感知算法外,往往还会有别的 APP 在同时运行,从而挤压算法的资源占用,影响模型性能,降低部署效果。因此在项目早期做板端验证的时候,我们就可以使用一些工具对 CPU 和内存…

(C语言)文件操作

目录 文件 程序文件 数据文件 文件名 ​编辑数据文件的分类 文件的打开和关闭 流 标准流 1)stdin 2)stdout 3)stderr 文件指针 文件的打开和关闭 对文件内容操作的函数 1)fgetc,fputc 2)fp…

低代码开发平台搭建思考与实战

什么是低代码开发平台? 低代码开发平台是一种平台软件,人们能通过它提供的图形化配置功能,快速配置出满足各种特定业务需求的功能软件。 具有以下特点: 提供可视化界面进行程序开发0代码或少量代码快速生成应用 什么是低代码产…

Axure设计之日期时间范围选择器

在产品设计和原型制作过程中,日期时间范围选择器是一个常见的需求。Axure作为一个强大的原型设计工具,能够帮助我们快速实现这一功能。通过利用Axure的动态面板、中继器、文本框、按钮以及时间函数,我们可以轻松制作一个功能完备的日期时间范…

汽车资讯新趋势:Spring Boot技术解读

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 汽车资讯网站的系统管理员可以管理用户,可以对用户信息修改删除审核以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 汽车品牌管理 系统管理员可以汽车品牌信息进行添加&#xf…

[开源] 告别黑苹果!用docker安装MacOS体验苹果系统

没用过苹果电脑的朋友可能会对苹果系统好奇,有人甚至会为了尝鲜MacOS去折腾黑苹果。如果你只是想体验一下MacOS,这里有个更简单更优雅的解决方案,用docker安装MacOS来体验苹果系统。 一、项目简介 项目描述 Docker 容器内的 OSX&#xff08…

STM32完全学习——使用SysTick精确延时(阻塞式)

一、SysTick相关寄存器 首先关于SysTick寄存器的数据在下面这个文件里面可以找到,平时那个数据手册是没有的。其次我这边使用的开发板是F407的开发板,关于这个寄存器的数据都是来自下面这个文件的截图,一般只会用到这3个寄存器。 二、使用标…

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。 主要特性 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和…