mapreduce需要与hdfs一起使用吗

e4eetjau  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(301)

我想使用hadoopmapreduce来提高数据处理的性能。那么,我需要将它与hadoop dfs一起使用吗?或者mapreduce可以与其他类型的分布式数据一起使用?请给我带路。。。。

hlswsv35

hlswsv351#

首先,你的想法是错误的。hadoopmapreduce的性能与hdfs的性能没有直接关系。它被认为是缓慢的,因为它的架构:
它用java处理数据。每个单独的Map器和缩减器都是一个单独的jvm示例,需要调用它,这需要一些时间
它多次将中间数据放在硬盘上。至少,Map程序写入结果(一个),还原程序读取并合并结果,将结果集写入磁盘(两个),还原程序结果写回文件系统,通常是hdfs(三个)。您可以在此处找到有关此过程的更多详细信息:http://0x0fff.com/hadoop-mapreduce-comprehensive-description/.
其次,hadoop是一个开放的框架,它支持许多不同的文件系统。您可以从ftp、s3、本地文件系统(例如nfs共享)、mapr fs、ibmgpfs、glusterfs by redhat等读取数据,因此您可以自由选择自己喜欢的文件。mapreduce的主要思想是指定能够与文件系统一起工作的inputformat和outputformat
spark目前被认为是hadoop mapreduce的一个更快的替代品,因为它将大量计算放到内存中。但它的用途取决于你的情况

ig9co6j1

ig9co6j12#

hadoop是一个框架,它包括用于计算的map-reduce编程模型和用于存储的hdfs。
hdfs代表hadoop分布式文件系统,它的灵感来自google文件系统。整个hadoop项目的灵感来源于google发表的研究论文。
research.google.com/archive/mapreduce-osdi04.pdf
http://research.google.com/archive/mapreduce.html
使用map-reduce编程,在集群的不同节点上并行计算模型数据,减少了处理时间。
您需要使用hdfs或hbase在集群中存储数据以获得高性能。如果你喜欢选择普通的文件系统,那么就不会有太大的区别。一旦数据进入分布式系统,系统会自动将数据划分到不同的块中,并默认复制3次,以避免容错。所有这些将不可能与正常的文件系统
希望这有帮助!

相关问题