MapReduce需要与HDFS一起使用吗



我想使用Hadoop MapReduce为数据处理提供更好的性能。那么,我需要将它与Hadoop DFS一起使用吗?或者MapReduce可以与其他类型的分布式数据一起使用?请给我指路。。。。

Hadoop是一个框架,包括用于计算的Map Reduce编程模型和用于存储的HDFS。

HDFS代表hadoop分布式文件系统,其灵感来源于Google文件系统。整个Hadoop项目的灵感来源于谷歌发表的研究论文。

research.google.com/archive/marepeduce-osdi04.pdf

http://research.google.com/archive/mapreduce.html

使用Map Reduce编程模型数据将在集群的不同节点中以并行方式计算,这将减少处理时间。

您需要使用HDFS或HBASE将数据存储在集群中以获得高性能。如果你喜欢选择普通的文件系统,那么不会有太大的区别。一旦数据进入分布式系统,它将自动被划分到不同的块中,并在默认情况下复制3次,以避免容错。所有这些都不可能与正常的文件系统

希望这能有所帮助!

首先,你的想法是错误的。Hadoop MapReduce的性能与HDFS的性能没有直接关系。它被认为是缓慢的,因为它的架构:

  1. 它使用Java处理数据。每个单独的映射器和reducer都是JVM的一个单独实例,需要调用它们,这需要一些时间
  2. 它多次将中间数据放在HDD上。至少,映射器写入结果(一个(,还原器读取并合并结果,将结果集写入磁盘(两个(,将还原器结果写回文件系统,通常是HDFS(三个(。您可以在此处找到有关流程的更多详细信息:http://0x0fff.com/hadoop-mapreduce-comprehensive-description/.

其次,Hadoop是一个开放的框架,它支持许多不同的文件系统。您可以从FTP、S3、本地文件系统(例如NFS共享(、MapR FS、IBM GPFS、RedHat的GlusterFS等读取数据。因此,您可以自由选择您喜欢的。MapReduce的主要思想是指定InputFormat和OutputFormat,它们将能够与您的文件系统一起工作

Spark目前被认为是HadoopMapReduce的一个更快的替代品,因为它将大部分计算都放在了内存中。但它的使用实际上取决于您的情况

最新更新