大数据基础架构

一、大数据两大核心技术:

分布式存储:HDFS、HBase、NoSQL、NewSQL
分布式处理:MapReduce

二、大数据计算模式:

大数据基础架构_第1张图片

三、代表性大数据技术:

1.Hadoop:ETL工具(extract、transform、load)

大数据基础架构_第2张图片

 YARN的目标就是实现“一个集群多个框架”,即在一个集群上部署一个统 一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架,并由YARN为这些计算框架提供统一的资源调度管理服务,可以动态调整各自占用的资源。

一个企业当中同时存在各种不同的业务应用场景,需要采用不同的计算框架,四种计算框架:

  • MapReduce实现离线批处理
  • 使用Impala实现实时交互式查询分析
  • 使用Storm实现流式数据实时分析
  • 使用Spark实现迭代计算

这些产品通常来自不同的开发团队,具有各自的资源调度管理机制,为了避免不同类型应用之间互相干扰,企业就需要把内部的服务器拆分成多个集群,分别安装运行不同的计算框架,即“一个框架一个集群”,导致的问题:

  • 集群资源利用率低
  • 数据无法共享
  • 维护代价高

Hadoop缺点:

  • 表达能力有限,局限于Map和Reduce操作
  • 磁盘IO开销大,延迟高
  • 任务之间的衔接涉及IO开销(在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务)

2.Spark 

大数据基础架构_第3张图片

 Spark优点:

  •  Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型(groupByKey、MapValues...),编程模型比Hadoop MapReduce更灵活
  • Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高,运行速度快
  • Spark基于DAG(有向无环图)的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制(每次中间降落都要经过磁盘,太慢了)
  • 容易使用:支持Scala、Java、Python、R语言进行编程,还可以通过spark shell进行交互式编程
  • 具有完整强大的技术栈,包括:SQL查询、流式计算、机器学习和图算法组件
  • 运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源

附:BDAS伯克利数据分析软件栈

大数据基础架构_第4张图片

问题:Spark会取代Hadoop吗?
        Hadoop包括两大核心:HDFS和MapReduce。Spark作为计算框架,与MapReduce是对等的。
谈到“取代”,Spark应该是取代MapReduce,而不是整个Hadoop。Spark借助于Hadoop的HDFS、HBase等来完成数据的存储,然后,由Spark完成数据的计算。

3.Flink 

大数据基础架构_第5张图片

Flink和Spark对比:我觉得最核心的区别是Spark核心实现基于Scala,核心采用批处理模型且基于RDD,所以在流式处理时会有一些延时;Flink内核基于Java,基于操作符的连续流模型按行处理,因此在流式处理方面就比Spark快,支撑毫秒级响应。Flink生态没有Spark好,所以没打过Spark。

4.Beam

谷歌开发的Beam试图一统天下,但是不愠不火,没有惊起波澜。

你可能感兴趣的:(大数据,big,data,hadoop,mapreduce)