一句话描述Hadoop,HDFS,Map Reduce,Spark,Hive,Yarn的关系,入门

转载:https://zhuanlan.zhihu.com/p/52704422

Hadoop:Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。不是一个工具,也不是一种技术,是一种技术的合称

HDFS:分布式文件系统。传统的文件系统是单机的,不能横跨不同的机器。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。

Map Reduce:分布式计算。一台机器读取成T上P的数据,也许需要好几天甚至好几周。对于很多公司来说,单机处理是不可忍受的。如果要用很多台机器处理,我就面临了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等。这就是MapReduce / Tez / Spark的功能。

Spark:之前的Map Reduce类似于汇编语言,那么现在的spark就类似于python了,功能和Map Reduce类似,但是对于开发人员更加的友好,更方便使用。

Hive:你希望有个更高层更抽象的语言层来描述算法和数据处理流程。于是就有了Hive。Hive用SQL描述MapReduce。它把脚本和SQL语言翻译成MapReduce程序,丢给计算引擎去计算,而你就从繁琐的MapReduce程序中解脱出来,用更简单更直观的语言去写程序了。

SparkSQL和Hive on Spark:自从数据分析人员开始用Hive分析数据之后,它们发现,Hive在MapReduce上跑,很慢! 它们的设计理念是,MapReduce慢,但是如果我用新一代通用计算引擎Tez或者Spark来跑SQL,那我就能跑的更快。

Yarn:有了这么多乱七八糟的工具,都在同一个集群上运转,大家需要互相尊重有序工作。所以另外一个重要组件是,调度系统。

上面的介绍,基本就是一个数据仓库的构架了。底层HDFS,上面跑MapReduce/Tez/Spark,再上面跑Hive。

原文地址:https://www.cnblogs.com/to-here/p/12462030.html