大数据应用——HBASE实验


任务一:搭建HBase集群

1.1 搭建Zookeeper

1.  官网下载Linux环境的tar包

(1)官网地址:Apache ZooKeeper

(2)下载Linux环境的tar包

2.  拷贝安装包到Linux系统下并解压到指定目录

[hadoop@hadoop101 software]$tar -zxvf apache-zookeeper-3.5.7

-bin.tar.gz -C /opt/module

  1.  配置修改相关文件及服务编号

(1)配置zoo_sample.cfg

(2)在/opt/module/zookeeper-3.5.7/目录下创建zkData文件

  1.  将配置分发至其他机器上

[hadoop@hadoop101 module ]$ xsync zookeeper-3.5.7

5.  创建集群启动停止脚本

[hadoop@hadoop101 bin]$ vim zk.sh

6.  群起Zookeeper

[hadoop@hadoop101 bin]$ zk.sh start

7.  查看启动状态

[hadoop@hadoop101 bin]$ zk.sh status

1.2 启动Hadoop集群

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/start-dfs.sh

1.3 搭建HBase

1.  官网下载Linux环境的tar包

2.  上传至Linux并解压到指定目录

3.  HBase的配置文件

(1)hbase-env.sh

(2)hbase-site.xml

(3)regionservers

(4)软连接hadoop配置文件到HBase

[hadoop@hadoop101 module]$ ln -s /opt/module/hadoop-2.7.2/et

c/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml

[hadoop@hadoop101 module]$ ln -s /opt/module/hadoop-2.7.2/et

c/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml

  1. HBase远程发送到其他集群

[hadoop@hadoop101 module]$ xsync hbase/

  1. HBase服务的启动
  1. 启动方式

[hadoop@hadoop101 hbase-1.3.1]$ bin/hbase-daemon.sh start ma

ster

[hadoop@hadoop101 hbase-1.3.1]$ bin/hbase-daemon.sh start reg

ionserver

  1. 启动方式

 [hadoop@hadoop101 hbase-1.3.1]$ bin/start-hbase.sh

对应的停止服务:

[hadoop@hadoop101 hbase-1.3.1]$ bin/stop-hbase.sh

1.4 查看HBase页面

启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:http://hadoop102:16010

1.5 进入HBase Shell客户端命令行

[hadoop@hadoop101 hbase-1.3.1]$ bin/hbase shell

任务二:进入HBase Shell,练习创建表、插入数据到表、扫描查看表数据、查看表结构、更新指定字段数据、查看指定数据、删除指定数据、删除表。

  1.  创建表

  1.  插入数据到表

  1.  扫描查看表数据

  1.  查看表结构

  1.  更新指定字段的数据

  1.  查看“指定行”或“指定列簇:列”的数据

  1.  统计表数据行数

  1.  删除数据
  1. 删除某rowkey的全部数据

增加记录

删除1001的所有数据

  1. 删除某rowkey的某一列数据

  1.  清空表数据

  1.  删除表

提示:删除表的操作顺序为先 disable,然后再 truncate。

  1.  变更表信息

任务三:举例说明HBase的行键设计原则

  1.  HBase的行键设计原则可以归纳为以下几点:

保证唯一性:HBase的行键必须保证唯一性,因为它是用来唯一标识一行数据的。因此,在设计行键时需要考虑如何构建能够保证唯一性的键值,例如可以使用时间戳或者在键值前面添加一些随机数。

稳定性:行键一旦确定,就不应该再次改变。因此,在设计行键时需要考虑到数据的稳定性。特别是在需要长期保存数据的场景下,行键设计的稳定性尤为重要。

可排序性:HBase的行数据默认是按照行键排序的,因此,在设计行键时应该考虑到排序的需要。一般可以采用一些有序的编码方式,如字典序或者时间戳,以便于快速进行检索和排序。

长度控制:HBase的行键长度不能太长,因为行键会占用内存资源。因此,在设计行键时需要控制其长度,一般建议不超过100个字符。

总之,行键的设计要综合考虑数据的唯一性、稳定性、排序性和长度控制等因素。在实践中,需要根据具体的应用场景和业务需求进行灵活调整。

  1.  举例说明:假设我们有一个需求:将每天的用户登录记录保存到HBase中,并将行键设计为时间戳+用户ID的形式。下面我将演示如何使用HBase的shell命令进行行键的设计和插入数据操作。

首先,我们根据HBase行键设计原则,先确定行键的构成:时间戳+用户ID。在Shell中,可以使用“timestamp_userid”的命名方式,示例如下:

接下来,我们可以使用put命令将数据插入到HBase中。这里以2023年6月22日的用户“001”登录记录为例:

在上面的put命令中,“20230622010001”即为行键,代表了该用户在2023年6月22日10:00:01的登录记录。该行键由时间戳和用户ID拼接而成。同时,我们可以插入一些列族和对应的列,例如登录时间、用户ID和IP地址等。

注意,在实际生产环境中使用shell命令进行操作的效率和可靠性较低,最好使用HBase的API或者其他工具对HBase进行管理和操作。

出现问题:启动HBase时,如果HMaster无法启动

问题原因:NameNode 挂了:如果HDFS中的NameNode挂了,则HMaster无法启动。可以查看HDFS日志以检查NameNode 错误。

解决方案:检查NameNode的日志,以了解连接被拒绝或出现其他问题的原因。如果需要,修复NameNode故障并重新启动hadoop集群,启动HBase成功。

HBase是一个分布式的、可扩展的、稳定的NoSQL数据库,可以用于存储和处理海量数据。它的数据模型类似于一个多维表格,可以轻松地存储和访问大量结构化数据。

需要学习如何安装和配置Hadoop和HBase集群,并了解HBase的整体架构、主要组件及其功能。同时,熟练运用HBase的Java API,掌握HBase的基本操作和常用命令。

HBase的存储架构是基于HDFS的,HBase表格中的每一行都会被分割成多个存储单元(Cell)来存储,每个存储单元都有行键、列族、列限定符和时间戳等属性。掌握存储结构和存储过程,有助于提升HBase应用的性能。

在实际应用中,需要考虑并发访问和数据一致性问题。HBase提供了多版本控制(MVCC)机制,在并发访问时可以避免数据读写冲突,同时还可以选择数据一致性级别来满足不同的业务需求。

总的来说,HBase是一个非常强大和灵活的NoSQL数据库,可以广泛应用于各种大数据应用场景。但是,在实践中需要仔细考虑数据模型的设计、存储结构的优化和性能调优等方面,熟练掌握HBase的各种功能才能更好地发挥其威力。

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

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

相关文章

高效处理消息:使用Spring Boot实现消息重试机制

当涉及到消息发送和接收的可靠性,Spring Boot提供了一些机制来确保消息的可靠传递。其中包括消息确认机制和重试机制。下面是一个示例代码,演示如何在Spring Boot中实现可靠的消息发送和接收。 首先,我们需要配置RabbitMQ的连接信息和相关属性…

【Java】JVM学习(一)

JVM是一种规范 Java程序的执行过程 一个 Java 程序,首先经过 javac 编译成 .class 文件,然后 JVM 将其加载到方法区,执行引擎将会执行这些字节码。执行时,会翻译成操作系统相关的函数。JVM 作为 .class 文件的翻译存在&#xff…

Flutter 设置自定义字体

一般我们会在 assets 文件夹下新建一个 font 的文件夹,然后把字体拖动到 font 文件夹中,如下图所示 然后在 pubspec.yaml 配置文件中新添加如下内容 fonts:- family: Impactfonts:- asset: assets/font/IMPACT.TTF 最后字体使用 Text( "自定义字体…

基于深度学习的高精度烟雾检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度烟雾检测识别系统可用于日常生活中或野外来检测与定位烟雾目标,利用深度学习算法可实现图片、视频、摄像头等方式的烟雾目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音处理顶会Interspeech 2023接收

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音技术顶会Interspeech 2023接收,涵盖意图识别、口语理解、声学特征、语音识别、语音分离、情感识别等研究方向,论文简介如下。 01. Rethinking the visual cues in audio-visual…

最新ai创作系统CHATGPT镜像系统源码+支持GPT4.0+支持ai绘画(MJ)+实时语音识别输入+免费更新版本

AI系统CHATGPT镜像程序源码支持GPT4支持ai绘画实时语音识别输入免费更新版本 一、AI创作系统二、系统介绍三、系统程序下载四、安装教程五、主要功能展示六、更新日志 一、AI创作系统 1、提问:程序已经支持GPT3.5、GPT4.0接口、支持新建会话,上下文记忆…

PyGame游戏编程

Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGame。 1. 初识Pygame PyGame是跨平台Python模块,专为电子游戏设计,包含图像、声音等,创建在SDL(…

【GESP】2023年06月图形化二级 -- 时间规划

文章目录 时间规划【题目描述】【输入描述】【输出描述】【参考答案】其他测试用例 时间规划 【题目描述】 默认小猫角色和白色背景,小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟。你能通过编程帮他做到吗? 【输入描述】 新建变量“…

数据结构-哈希-位图与布隆过滤器

位图与布隆过滤器 一,位图题目分析位图设计位图代码经典题目 二,布隆过滤器布隆过滤器概念布隆过滤器的插入布隆过滤器的结构布隆过滤器总结经典题目 三,哈希切割 一,位图 题目分析 🚀给40亿个不重复的无符号整数&am…

设计模式之策略模式笔记

设计模式之策略模式笔记 说明Strategy(策略)目录策略模式示例类图抽象策略类策略A类策略B类策略C类促销员类测试类 说明 记录下学习设计模式-策略模式的写法。JDK使用版本为1.8版本。 Strategy(策略) 意图:定义一系列的算法,把它们一个个封装起来,并且…

Uncaught TypeError: Illegal invocation

使用console.time报错 console.time将在当前对象(即支持)的上下文中执行,发现一些老的chrome版本中,上下文可能有问题. 解决: 可以使用 console.time.call(window,1111)

把网页地址中的url的参数转化为obj

1.例子: var str"http://www.hqyj.com/index.html?uid123&page19&dt20230407&namekaren" 2.代码: var str"http://www.hqyj.com/index.html?uid123&page19&dt20230407&namekaren"function fn (str) {var arr1str.split("…