HBase MapReduce_3 | 学习笔记

简介: 快速学习 HBase MapReduce_3

开发者学堂课程【HBase入门教程HBase MapReduce_3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/397/detail/5098


HBase MapReduce_3


内容介绍

一、执行环境

二、回顾总结


一、执行环境

Mapreduce 跑完了,查看 wc 这个表有数据,二进制的原因

image.png

Hadoop hbase hello name world zookeeper 每一个单词作为 rowkey ,右边的 value 是对应的值,因为二进制的原因导致序列号和反序列号出问题,但是最终的结果体验出来。用本地方式运行的时候和提交服务器运行,代码没有区别,但是本地方式就出现问题,提交服务器来运行两种方式。重新写的 reduce 方法, map 处理起来是一样的,只不过 map 是从 HBase 读数据,map 具体如何写,需要看是什么逻辑,写的这个 reduce 输出的时候向 HBase 里写数据,不论读数据还是写数据, mapreduce 作为 hbase 的一个客户端,批量的写数据读数据这样的方法没有问题。

MR 执行环境有两种:本地测试环境,服务器环境

本地测试环境(windows) :

windows nadoop 目录 b1n 目录有一个 winut1ils.exe

1.windows 下配置 hadoop 的环境变量

2.拷贝 debug 工具(winut1ls . exe)HADOOP_ HOME/bin

3.修改 hadoop 的源码,注意:确保项目的116需要真实安装的,     dk 的11b

4.MR 调用的代码需要改变;

A.sre 不能有服务器的 nadoop 配置文件

B.在调用是使用:

Configuration config=new Configuration();conflg.set("fs.defaultFS", "hdfs://node7:8020");config.set("yarn.resourcemanager.hostname","node7");

服务器环境:

首先需要在 src 下放置服务器上的 hadoop 配置文件

在本地直接调用,执行过程在服务器上(真正企业运行环境)

a、把 MR 程序打包(jar),直接放到本地

b、修改 hadoop 的源码,注意:确保项目的 l1b 需要真实安装的 jdk 的 11b

C、增加一个属性:

config.set("mapred.jar","C:\\Users\\Administrator\\Desktop\\wc.jar");

d、本地执行 main 方法, servlet 调用 MR

直接在服务器上,使用命令的方式调用,执行过程也在服务器上

a、把 MR 程序打包(jar),传送到服务器上

b、通过:  hadoop jar jar 路径类的全限定名

批量写

通过调用 HTable.put(Put) 方法可以将一个指定的 row key 记录写入 HBase,同样 HBase 提供了另一个方法;通过调用    HTable,put(List )方法可以将指定的 row key 列表,批量写入多行记录,这样做的好处是批量执行,只需要一次网络 I/O 开销,这对于对数据实时性要求高,网络传输 RTT 高的情景下可能带来明显的性能提升。

多线程并发写

在客户端开启多个HITable.写线程,每个写线程负责一个 HTable 对象的 flush 操作,这样结合定时 flush 和写 buffer ( writeBufferSize) ,可以既保证在数据量小的时候,数据可以在较短时间内被 flush (1秒内) ,同时又保证在数据量大的时候,写 buffer 二满就及时进行 flush


二、回顾总结

设计表

1、 Rowkey

根据业务 :查询的字段可以放在 rowkey 里,hbase 默认是一级索引,放在 rowkey 里查询效率更高,rowkey 的设计越短越好,HBase 里面的数据本身是有序的,像顶级部门的那个案例,放在第一位,在 HBase 里数据存储的时候,在 hbase 里是一段连续的区域。  

时间降序:默认是按照字典排序,用一个大的值减去之后就可以改变之前的顺序。

rowkey 越小越好,rowkey 的设计是散列,好处就是将数据分散在不用的 run 上边,可以提高并发量,散列的规则讲了两种,不论哪种方式都需要根据业务来选择。

2、 列簇  

设计粉丝表,关注表可以把粉丝用户,关注用户放在不同的列表下,以不用的 id 作为列名,用户名称作为值来存储。列族的个数一般是1-3个,超过2-3个之后性能支撑不好,原因是一个 star 对应一个列族,一个 star 触发 freshkatch,相邻的 star 也会触发,带来不必要的 io 操作,合并的时候一个 star 触发合并,相邻的也会触发合并,列的个数没有上限。

3、 solr 二级索引  

当分析场景,用分析文档的数据,需要对文档做一个检索的时候,可以跟 solr 进行整合,solr 里存储索引这个值,指向 HBase rokey

4、 设计表

多对多关系  一对一关系

Protobuf:value 比较小,value 列多,每个列对应的值比较小,有大部分的存储空间来存储 rokey 这些信息,使用 protobuf 将列封装起来,从而减少存储空间。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
11月前
|
SQL 分布式计算 并行计算
Hadoop学习笔记(三)之MapReduce
Hadoop学习笔记(三)之MapReduce
|
2天前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
11 1
|
2天前
|
存储 分布式计算 分布式数据库
《HBase MapReduce之旅:我的学习笔记与心得》——跟随我的步伐,一同探索HBase世界,揭开MapReduce的神秘面纱,分享那些挑战与收获,让你在数据的海洋里畅游无阻!
【8月更文挑战第17天】HBase是Apache顶级项目,作为Bigtable的开源版,它是一个非关系型、分布式数据库,具备高可扩展性和性能。结合HDFS存储和MapReduce计算框架,以及Zookeeper协同服务,HBase支持海量数据高效管理。MapReduce通过将任务拆解并在集群上并行执行,极大提升处理速度。学习HBase MapReduce涉及理解其数据模型、编程模型及应用实践,虽然充满挑战,但收获颇丰,对职业发展大有裨益。
12 0
|
3月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
105 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
3月前
|
存储 分布式计算 分布式数据库
对给定的数据利用MapReduce编程实现数据的清洗和预处理,编程实现数据存储到HBase数据库,实现数据的增删改查操作接口
对给定的数据利用MapReduce编程实现数据的清洗和预处理,编程实现数据存储到HBase数据库,实现数据的增删改查操作接口
41 0
|
3月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
400 0
|
9月前
|
分布式计算 分布式数据库 Hbase
99 MapReduce操作Hbase
99 MapReduce操作Hbase
71 0
|
存储 SQL 弹性计算
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
快速学习视频-《 E-MapReduce 组件介绍》
93 0
视频-《 E-MapReduce 组件介绍》|学习笔记(四)
|
存储 分布式计算 运维
视频-《E-MapReduce 组件介绍》|学习笔记(一)
快速学习视频-《E-MapReduce组件介绍》
110 0
视频-《E-MapReduce 组件介绍》|学习笔记(一)
|
SQL 弹性计算 分布式计算
视频-《E-MapReduce》|学习笔记(四)
快速学习视频-《E-MapReduce》
184 0
视频-《E-MapReduce》|学习笔记(四)