2023年7月17日发(作者:)
Hadoop使用场景以及组件选择
云计算平台发展到现在一般都提供大数据分析能力,大数据平台作为传统数据库的一次发展已经有了丰富的能力,今天我们看看基于Hadoop架构的一些大数据组件可以做些什么?
Hadoop作为大数据分析平台越来越成熟,发展到现在组件变成了一大堆,一眼看上去挺乱的,但其实在不同的场景,组件的选择是有差异的,我们来做个简单的梳理。
Hadoop的使用场景一般分为四类:离线处理,交互查询,实时流处理,实时检索。
一、离线处理
1、典型应用如数据清理,特点是处理数据量大,耗时长。
2、核心组件选择:MapReduce + Hive,或者Spark + Spark SQL。
3、数据流动:
(1)流式数据/文件/数据库 -> flume/第三方ETL -> HDFS -> Yarn -> Spark -> Spark SQL -> 数据仓库;
(2)流式数据/文件/数据库 -> flume/第三方ETL -> HDFS-> Yarn -> MapReduce -> Hive -> 数据仓库; (较老)
二、交互查询
1、典型应用如数据库联合查询,特点是响应要求较高,3s左右,越快越好,数据量比离线查询小,查询条件较为复杂。(例如找出全国双十一期间买了啤酒和尿布的男性)
2、核心组件选择:MapReduce + Hive,或者Spark + Spark SQL。
3、数据流动:
(1)流式数据/文件/数据库 -> flume/第三方ETL -> HDFS -> Yarn -> Spark -> Spark SQL -> 查询;
(2)流式数据/文件/数据库 -> flume/第三方ETL -> HDFS-> Yarn -> MapReduce -> Hive -> 查询;
(较老) 但是目前来看,原生组件性能一般,查询很慢, 并且对SQL语法支持不好,所以很多厂商做了优化,国外有Cloudera的Impala,国内做的比较好的有华为FusionInsight 的Elk(自研SQL引擎),星环的Inceptor等。
华为FusionInsight中Elk的数据流动为:
流式数据/文件/数据库 -> flume/第三方ETL -> HDFS-> Yarn
-> Elk -> 查询;
三、实时流处理
1、典型应用如银行实时风控,特点是响应要求实时,数据不落盘(硬盘)。
2、核心组件选择:Flink,或者Spark Streaming。 某些情况需要缓存数据时使用Kafka组件,处理完结果可以放在redis(内存数据库)中暂时存储,供上层应用使用。
3、数据流动:
实时流/实时文件/数据库 -> flume/第三方ETL -> Kafka -> Flink/Spark Streaming -> redis/Kafka ->
实时应用
注意:这里不会使用HDFS,因为数据不落盘。
四、实时检索
1、典型应用如查询一个人的购买记录,特点是响应基本实时,但是不支持负责查询。
2、核心组件选择:ES/Solr/Hbase。
3、数据流动:
流式数据/文件/数据库 -> flume/第三方ETL -> HDFS -> Yarn -> ES/Solr/Hbase -> 检索。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689543445a264794.html
评论列表(0条)