Hive是一个构建在Hadoop上的数据仓库框架,设计目的是让精通SQL的分析师能够对存放在HDFS上的大规模数据集执行查询操作。
Hive把数据组织为表,通过这种方式为存储在HDFS的数据赋予结构,并将表模式等元数据存储在名为Merastore的数据库中。基于这种类似关系的数据模型,Hive把SQL查询转换为一系列在Hadoop集群上运行的MapReduce作业。
Hive体系结构如下图所示:
2.YARN
从0.23版本开始,新的Hadoop MapReduce框架被命名为YARN,即资源管理和调度框架。
3.Spark
MapReduce框架主要存在两个不足:
(1)运行效率较低
(2)对复杂算法支持不好
Spaek立足于内存计算,从多迭代批量处理出发,包括数据仓库、流处理和图计算等多种计算范式。Spark可以在Hadoop集群中运行,通过使用内存而非硬盘,避免了MapReduce的批处理问题。相对于MapReduce,Spark的明显优势有以下几点:
(1)提供了一套支持有向五环图DAG(directed acyclic graph)的分布式并行计算的编程框架,减少多次计算之间中间结果写到HDFS的开销。
(2)提供基于内存的Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的I/O开销。
(3)使用多线程池模型来减少task启动开销,Shuffle过程中避免了不必要的sort操作,以及减少磁盘I/O操作。
(4)与MapReduce相比,具有更广泛的数据集操作类型,大大提高编程的灵活性。
(5)基于比Java更简洁的Scala语言,提高了代码的简洁性。
原文地址:http://blog.51cto.com/likerock/2152992
时间: 2024-11-05 20:39:42