大数据关键技术
-
分布式存储
解决数据存储问题
GFS
HDFS
BigTable
HBase
NoSQL -
分布式处理
解决数据高效计算问题
MapReduce
Spark
大数据计算模式
不同的计算模式需要使用不同的产品
- 批处理计算:MapReduce、Spark
- 流计算:需要实时处理,给出实时响应(Storm,Flume)
- 图计算:如社交网络数据
- 查询分析计算:Dremel、Hive
Hadoop
它不是单一产品,是一个完整的生态系统。
- HDFS 是一个分布式文件系统,用来海量分布式文件存储。
- YARN 是用来提供资源调度和管理服务。
- MapReduce 是分布式计算框架。
- Hive 是编程接口,将SQL语句自动转换对HDFS查询分析,得到结果。
- Pig 是数据流处理
- Mahout 是常用数据挖掘算法分类、聚类、回归等。
- HBase 是分布式数据库。
- Flume 做日志采集。
- Sqoop 完成Hadoop系统组件之间的互通。
Spark
Spark也是一个完备生态系统。
- Spark Core:满足企业批处理
- Spark SQL:满足查询分析
- Spark Streaming:满足流计算
- MLlib:机器学习算法库
- GraphX:满足图计算
MapReduce缺点:
- 表达能力有限
MapReduce将复杂业务逻辑抽象为Map函数和Reduce函数,其限制了表达能力。并非所有问题都能抽象为Map和Reduce - 磁盘IO开销大,迭代次数大的话就会不断读磁盘写磁盘
- 延迟大
Spark本质上计算模式也是MapReduce,但是操作不局限于Map和Reduce两个操作,提供了更多的操作类型。而且Spark会存储在内存中,磁盘IO开销很小。
而Spark单纯是一种计算框架,等价于MapReduce。
Flink和Beam
Flink是和Spark类似的计算框架。
Spark社区更好!