先了解一下大数据的发展史
通常认为2003年google发表的那“三篇经典论文”是大数据技术的开端,之后不久便诞生了开源的map-reduce的计算框架,hdfs文件存储系统,hbase数据存储系统;
2010年spark开源,并逐渐替代hadoop的map-reduce计算框架;至今在大数据批处理领域,spark至少占据了半壁江山甚至是绝大部分江山。
同一时期,2010年前后,诞生了kafka、flink等流数据处理领域的很多组件
至此在互联网领域最常见的lamds架构组件基本完善,关于lamda架构我会在后面的案例分享中详细介绍;
当然还有很多其他大数据相关的组件比如mongoDB、elasticsearch等也有其非常适合的大数据处理场景。

下面开始一一介绍
关键组件应用场景
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的处理能力强大。

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系统;
整体架构图如下:

















