社区
Hadoop生态社区
帖子详情
HBASE如何在TB级别上的数据做实时join操作
sanguomi
2014-03-15 09:09:16
原始数据
表A ID url
表B ID key
这两张表的数据都会上T
想要的做的是表B的key在表A中出现过的记录
现在表结构不太好定义, 另外想要做的是实时查询
...全文
730
5
打赏
收藏
HBASE如何在TB级别上的数据做实时join操作
原始数据 表A ID url 表B ID key 这两张表的数据都会上T 想要的做的是表B的key在表A中出现过的记录 现在表结构不太好定义, 另外想要做的是实时查询
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
herofour444
2014-05-26
打赏
举报
回复
今天上午听说有人把索引键在mongodb上
vah101
2014-05-20
打赏
举报
回复
hive 整合 hbase phoenix
herofour444
2014-05-20
打赏
举报
回复
关注。 。。。
撸大湿
2014-03-18
打赏
举报
回复
先搞倒排索引
大
数据
场景化解决方案.pdf
⼤
数据
场景化解决⽅案 ⼤
数据
场景化解决⽅案 1.⼤
数据
的概念 维基百科的定义: ⼤
数据
是指利⽤常⽤软件⼯具捕获、管理和处理
数据
所耗时间超过可容忍时间的
数据
集。 2.⼤
数据
主流技术
数据
采集: 使⽤Flume,可进⾏流式⽇志
数据
的收集。 使⽤Sqoop可以交互关系型
数据
库,进⾏导⼊导出
数据
。 使⽤爬⾍技术,可在⽹上爬取海量⽹页
数据
。
数据
存储与管理: ⼤
数据
利⽤分布式⽂件系统HDFS、
HBase
、Hive,实现对结构化、半结构化和⾮结构化
数据
的存储和管理。
数据
处理与分析: 利⽤分布式并⾏编程模型和计算框架,结合机器学习和
数据
挖掘算法,实现对海量
数据
的处理和分析。 3.场景化解决⽅案 在⾯对不同的场景时,会使⽤不同的⼤
数据
组件去解决处理,主要有如下⼤
数据
场景化解决⽅案。 离线批处理
实时
检索
实时
流处理 融合数仓 3.1 离线批处理 离线批处理,是指对海量历史
数据
进处理和分析,⽣成结果
数据
,供下⼀步
数据
应⽤使⽤的过程。离线批处理对
数据
处理的时延要求不 ⾼,但是处理的
数据
量较⼤,占⽤的计算存储资源较多,通常通过MR作业、Spark作业或者HQL作业实现。 离线批处理的特点: 处理时间要求不⾼ 处理
数据
量巨⼤ 处理
数据
格式多样 占⽤计算存储资源多 离线处理常⽤的组件: HDFS:分布式⽂件系统,为各种批处理引擎提供
数据
存储,可以存储各种⽂件格式
数据
。 YARN:资源调度引擎,为各种批处理引擎提供资源调度能⼒。 MapReduce:⼤
数据
批处理引擎,⽤于处理海量
数据
,但是处理速度较慢。 Hive:⼤
数据
SQL批处理引擎,⽤于处理SQL类批处理作业,但是处理速度较慢。 Spark:基于内存的
数据
处理引擎,适合海量
数据
,处理速度⾼效。 Spark SQL:Spark处理结构化
数据
的⼀个模块。 HDFS介绍 HDFS(Hadoop Distributed File System)基于Google发布的GFS论⽂设计开发。 其除具备其它分布式⽂件系统相同特性外,HDFS还有⾃⼰ 特有的特性: ⾼容错性:认为硬件总是不可靠的。 ⾼吞吐量:为⼤量
数据
访问的应⽤提供⾼吞吐量⽀持。 ⼤⽂件存储:⽀持存储
TB
-PB
级别
的
数据
。 HDFS适合:⼤⽂件存储与访问 流式
数据
访问 HDFS不适合:⼤量⼩⽂件存储 随机写⼊ 低延迟读取 HDFS回收站机制: 在HDFS⾥,删除⽂件时,不会真正的删除,其实是放⼊回收站,回收站⾥的⽂件可以⽤来快速恢复误删⽂件。 可以设置⼀个时间阀值(单位:分钟),当回收站⾥⽂件的存放时间超过这个阀值或是回收站被清空时,⽂件才会被彻底删除,并且 释放占⽤的
数据
块。 Hadoop回收站trash,默认是关闭的,若开启需要修改配置⽂件core-site.xml。 Hive概述 Hive是基于Hadoop的
数据
仓库软件,可以查询和管理PB
级别
的分布式
数据
。 Hive特性: 灵活⽅便的ETL (Extract/Transform/Load)。 ⽀持MapReduce、Tez、Spark多种计算引擎。 可直接访问HDFS⽂件以及
HBase
。 易⽤易编程。 Hive函数: 查看系统函数的⽤法:show functions; 显⽰函数的⽤法:desc function upper; 详细显⽰函数的⽤法:desc function extended upper; 当Hive提供的内置函数⽆法满⾜业务处理需要时,此时就可以考虑使⽤⽤户⾃定义函数,编写处理代码并在查询中使⽤。 UDF(User-Defined-Function) ⽤于接收单个
数据
⾏,并产⽣⼀个
数据
⾏作为输出。 UDAF(User-Defined Aggregation Function) ⽤于接收多个
数据
⾏,并产⽣⼀个
数据
⾏作为输出。 UDTF(User-Defined Table-Generating Functions) ⽤于接收单个
数据
⾏,并产⽣多个
数据
⾏作为输出。 Hive调优
数据
倾斜
数据
倾斜指计算
数据
的时候,
数据
的分散度不够,导致⼤量的
数据
集中到了⼀台或者⼏台机器上计算,这些
数据
的计算速度远远低于平均 计算速度,导致整个计算过程过慢。 ⽇常使⽤过程中,容易造成
数据
倾斜的原因可以归纳为如下⼏点: group by distinct count(distinct xx)
join
调优参数: 在map中会
做
部分聚集
操作
,效率更⾼但需要更多的内存。 set hive.map.aggr=true; 此时⽣成的查询计划会有两个MRJob,可实现
数据
倾斜时负载均衡。 set hive.groupby.skewindata=true; 当连接⼀个较⼩和较⼤表的时候,把较⼩的表直接放到内存中去,然后再对较⼤的表进⾏map
操作
。 set hive.auto.convert.
join
=true
HBase
的基础介绍
HBase
是 BigTable 的开源(源码使用 Java 编写)版本。是 Apache Hadoop 的
数据
库,是建立在 HDFS 之上,被设计用来提供高可靠性、高性能、列存储、可伸缩、多版本的 NoSQL 的分布式
数据
存储系统,实现对大型
数据
的
实时
、随机的读写访问。
hbase
与hive都是架构在hadoop之上的,都是用HDFS作为底层存储。批量读取吞吐量远不如 HDFS,不适用于批量
数据
分析的场景。
FlinkSQL流式关联
Hbase
大表方案(走二级索引)
我们在
做
实时
数据
开发的时候,通常要用spark、flink去消费kafka的
数据
,拿到
数据
流后会和外部
数据
库(
Hbase
、MySQL等)进行维表关联来把
数据
流打宽。当然了,有些外部
数据
库不只是存储维度
数据
,也会有很多事实
数据
,并且这些
数据
更新频繁,
数据
量巨大,但是我们的Flink流也会去
实时
的
join
这些巨大的事实表,这就需要选择一个合适的外部
数据
库作为支持,这个外部
数据
库一定要满足海量
数据
高效的读写性能,这样才能满足
实时
场景的需求,说到这,我们的目光自然而然的落到了
Hbase
上,来吧,我们直接上图,下..
HBase
表
数据
的读、写
操作
与综合
操作
实验任务1:使用MapReduce批量将
HBase
表中
数据
导入到HDFS上。表名和表中
数据
自拟。实验任务2:使用MapReduce批量将HDFS上的
数据
导入到
HBase
表中。表名和
数据
自拟,建议体现个人学号或姓名。使用Java编程创建表和删除表,表名和列族自拟。实验任务3:在实验任务1和实验任务2的基础上,通过
HBase
编程,实现创建
HBase
表,修改
HBase
表(包括增加列族和删除列族),向
HBase
表中写入
数据
,读取
HBase
表中
数据
,查看
HBase
数据
库中所有表和表结构功能,建议在一个类中定义多个方法
hbase
简介
hbase
简介
Hadoop生态社区
20,811
社区成员
4,691
社区内容
发帖
与我相关
我的任务
Hadoop生态社区
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
复制链接
扫一扫
分享
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章