大数据总结

123 阅读2分钟

大数据定义

大数据的4v定义

  1. 数据规模大
  2. 数据价值密度低
  3. 数据种类多
  4. 数据处理速度大

大数据重要的三篇文章

  • GFS
  • Bigtable
  • MapReduce

大数据的生态

大数据计算引擎的迭代

MR计算类型

Hadoop的出现以跨时代的方式,Hadoop的MR计算实现了分布式计算和海量数据存储,但是Hadoop的MR计算无法直接迭代,每次的mr后的结果都要进行落盘,中间需要多次shuffle,性能低

DAG内存迭代计算类型

Spark开启了DAG计算模型的先河,减少落盘的次数,可以直接在内存迭代,只有shuffle时才落盘,并提供了缓存策略和丰富的算子类型,极高地提高开发效率

image.png

事件驱动的实时计算

flink和stom都是实时计算引擎,但是flink相较于stom,实现了低延时和精准的一次性(主要是其状态后端的两阶段提交协议)

image.png

大数据组件

底层存储

Hadoop

Hadoop是大数据重要的组件,在Hadoop经过长期的发展,初始的MR计算使用逐渐减少,但其Hdfs和yarn组件仍被广泛应用

数据库

Hive

Hive,在大数据离线场景被广泛应用。Hive支持行式和列式存储。Hive包含了多种压缩格式,格式压缩主要是orc和parquet压缩。函数丰富,允许自定义的函数

Hbase

Hbase是非传统的Nosql的K-V的数据库,数据底层存储主要存储在hdfs(主要的),由于其LSM结构,数据读写性能一般,并发能力中规中矩,不会因为数据量增大而性能迅速下降

image.png

clickhouse

clickhouse在是俄罗斯的yandex开源的OLAP数据库,拥有高超的性能,可实现亿级的数据秒级的返回,但是存在并发能力低,join能力低的问题,但在单宽表场景下是不错的选择

消息中间件

kafka

kafka在大数据领域常起到削峰的作用。高并发的场景,数据库是整个系统的瓶颈,为了提高系统的并发能力,可将数据先写到kafka内,作为缓存。高效地顺序写入,零拷贝技术和分区写入使kafka性能提升到极致。

消息采集组件

flume

flume是常用的流式数据采集框架,具有断点续传(tair source可实现)和传输可靠性(file channel,kafka channel可实现)的功能,可参考我之前写过的文章