先了解一下大数据的发展史

通常认为2003年google发表的那“三篇经典论文”是大数据技术的开端,之后不久便诞生了开源的map-reduce的计算框架,hdfs文件存储系统,hbase数据存储系统;

2010年spark开源,并逐渐替代hadoop的map-reduce计算框架;至今在大数据批处理领域,spark至少占据了半壁江山甚至是绝大部分江山。

同一时期,2010年前后,诞生了kafka、flink等流数据处理领域的很多组件

至此在互联网领域最常见的lamds架构组件基本完善,关于lamda架构我会在后面的案例分享中详细介绍;

当然还有很多其他大数据相关的组件比如mongoDB、elasticsearch等也有其非常适合的大数据处理场景。




hadoop举例 hadoop的应用案例有哪些_spark


下面开始一一介绍

关键组件应用场景

Hadoop

hadoop有很多组件,关键的三个组件为:HDFS、map-reduce、yarn;

HDFS是底层的文件存储系统,目前针对大数据的存储,业界还是以HDFS为主;

map-reduce是最早的计算框架,现在逐步被spark、hive等替代;

yarn是负责集群资源管理调度的组件,大部分分布式计算框架比如:mapreduce、spark、flink都可以运行在yarn管理的集群上。目前还比较主流,但k8s目前发展也比较迅速,某些场景下可以替代yarn

hbase

hbase是数据存储系统,主要用于大数据场景下的点查询

相比普通的缓存系统如redis,其查询效率还是比较慢的,通常在几十毫秒到百毫秒之间;

对于传统的数据库如mysql,其本身不支持复杂的数据处理,如统计分析、复杂的事务等;

hbase的主要优势在于可以存储大数据,并且相对较快的支持点查询

spark

spark的两个主要应用场景是大数据的批处理与流处理;

在批处理任务上可以认为是目前最具优势的大数据处理组件。

spark2.0以后新增了structed stream模块,支持低延时的流处理,好吃央视在百毫秒级别,但实际测试在秒级别

flink

典型的流处理工具,在流处理任务上无论在延迟性或者灵活性上,比spark更具有优势;

也支持批处理,但目前在批处理任务上的应用并不如spark

kafka

之前写的文章有详细介绍过,kafka的准确理解应该为消息中间件,虽然后面支持了一些流数据处理功能,但在实际应用中远没有spark及flink的处理能力强大。


hadoop举例 hadoop的应用案例有哪些_大数据_02


kafka官网译文

elastic search

针对大数据的近似实时的搜索统计查询平台,经常结合kibana进行可视化;之前写过es的系列文章;

ES系列:elasticsearch的功能及Top 5大应用场景

某常某业务大数据处理架构分享

每天约60亿条左右的数据量

应用层大约有2000台左右的服务器用于处理来自客户端的消息请求;

消息首先接入的是kafka层,然后不同的消费者对其进行分别处理;

consumer group1处理数据,并返回返回客户端;

consumer group2用于将数据存储到HDFS;

consumer group3用于将数据处理并存储到hbase;

consumer group4用于将数据处理并存储到es;

consumer group5用于流数据输出近似实时的价值信息提供给AI系统;

整体架构图如下:


hadoop举例 hadoop的应用案例有哪些_hadoop举例_03