Hadoop2.6.0官方示例:在单节点设置中,Yarn(MR2)比MapReduce(MR1)慢得多



我开始玩hadoop 2.6.0,并根据官方文档建立了一个伪分布式单节点系统。

当我运行简单的Map Reduce(MR1)示例(请参阅"伪分布式操作->执行")时,整个执行时间约为7秒。更准确地说,bash的时间给出:

实际0m6.769s用户0m7.375ssys 0m0.400s

当我通过Yarn(MR2)运行相同的示例时(请参阅"伪分布式操作->单节点上的Yarn"),则总体执行时间约为100秒,因此非常慢。bash的时间给出:

真实1m38.422s用户0m4.798ssys 0m0.319s

因此,(由于某种原因)在用户空间之外有很大的开销。但为什么呢?

这两个例子都是通过执行的

bin/hadop-jar share/hadop/mapreduce/hadop-mapreduce-examples-2.60.jar grep input-output'dfs[a-z.]+'

这里是纯Map Reduce(MR1)的更多详细信息:

(…)10年4月15日21:12:17信息地图缩减。作业:计数器:38文件系统计数器FILE:读取的字节数=125642FILE:写入的字节数=1009217FILE:读取操作数=0FILE:大型读取操作数=0FILE:写入操作数=0HDFS:读取的字节数=154548HDFS:写入的字节数=1071HDFS:读取操作数=157HDFS:大型读取操作数=0HDFS:写入操作数=16Map Reduce框架地图输入记录=11映射输出记录=11映射输出字节=263映射输出物化字节=291输入拆分字节=129合并输入记录=0合并输出记录=0减少输入组=5减少混洗字节=291减少输入记录=11减少输出记录=11泄漏记录=22无序贴图=1失败的Shuffles=0合并映射输出=1GC运行时间(ms)=0花费的CPU时间(毫秒)=0物理内存(字节)快照=0虚拟内存(字节)快照=0提交的堆使用总量(字节)=1062207488无序播放错误BAD_ID=0连接=0IO_ERROR=0错误长度=0错误映射=0错误_减少=0文件输入格式计数器读取的字节数=437文件输出格式计数器写入的字节数=197实际0m6.769s用户0m7.375ssys 0m0.400s

这里是纱线(MR2)的更多详细信息:

(…)2010年4月15日21:20:31信息地图缩减。作业:计数器:49文件系统计数器FILE:读取的字节数=291FILE:写入的字节数=211001FILE:读取操作数=0FILE:大型读取操作数=0FILE:写入操作数=0HDFS:读取的字节数=566HDFS:写入的字节数=197HDFS:读取操作数=7HDFS:大型读取操作数=0HDFS:写入操作数=2作业计数器已启动的地图任务=1已启动减少任务=1数据本地映射任务=1所有映射在占用的时隙中花费的总时间(ms)=2411所有减少占用的时隙所花费的总时间(ms)=2717所有映射任务花费的总时间(毫秒)=2411所有reduce任务花费的总时间(ms)=2717所有映射任务总共花费的vcore秒数=2411所有reduce任务总共花费的vcore秒数=2717所有映射任务花费的总MB秒数=2468864所有reduce任务花费的总MB秒数=2782208Map Reduce框架地图输入记录=11映射输出记录=11映射输出字节=263映射输出物化字节=291输入拆分字节=129合并输入记录=0合并输出记录=0减少输入组=5减少混洗字节=291减少输入记录=11减少输出记录=11泄漏记录=22无序贴图=1失败的Shuffles=0合并映射输出=1GC运行时间(ms)=68花费的CPU时间(ms)=1160物理内存(字节)快照=432250880虚拟内存(字节)快照=1719066624提交的堆使用总量(字节)=353370112无序播放错误BAD_ID=0连接=0IO_ERROR=0错误长度=0错误映射=0错误_减少=0文件输入格式计数器读取的字节数=437文件输出格式计数器写入的字节数=197实际1m38.422s用户0m4.798ssys 0m0.319s

有人能解释这个性能差距以及如何解决它吗?

YARN非常方便,如果你有一个非常巨大的集群,并且你想将同一个集群用于不同的应用程序,如hadoop、Spark、Kafka e.t.c。它是为支持许多平台而设计的。我认为,由于dafault配置,您可以看到时间差,我想调整集群会提供更好的性能。

最新更新