hadoop streaming mapreduce慢速查找文件

j0pj023g  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(476)

我有一个hadoop作业,当输入大量的输入文件时需要很长时间来初始化,我不知道为什么。不管使用了多少文件,作业都会在几秒钟内找到所有节点和文件,但如果给定10000个文件,则需要相当长的时间(分钟)来确定拆分的数量。当我以其他用户的身份运行作业时,作业几乎会立即决定拆分的数量。

$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -D 'mapreduce.job.name=...'
packageJobJar: [] [/usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.11.0.jar] /tmp/streamjob4556879591438635545.jar tmpDir=null
17/08/07 22:01:40 INFO client.RMProxy: Connecting to ResourceManager at jobtracker-dev.la.prod.factual.com/10.20.103.16:8032
...
17/08/07 22:01:41 INFO security.TokenCache: Got dt for hdfs://dev; Kind: HDFS_DELEGATION_TOKEN....
17/08/07 22:01:41 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
17/08/07 22:01:41 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 674c65bbf0f779edc3e00a00c953b121f1988fe1]
17/08/07 22:01:41 INFO mapred.FileInputFormat: Total input paths to process : 10000
17/08/07 22:01:41 INFO net.NetworkTopology: Adding a new node: /cs3/211/...
17/08/07 22:01:41 INFO net.NetworkTopology: Adding a new node: /cs3/210/...
...
<LONG PAUSE>
...
17/08/07 22:31:39 INFO mapreduce.JobSubmitter: number of splits:10000

这显然不是很多信息,但是有人知道可能发生了什么吗?

xdnvmnnf

xdnvmnnf1#

所用的时间取决于这么多的参数,为开始你可以检查你的集群容量,和Yarn配置具体。如果您有10k的分割,这意味着am与任务的协调将花费大量的时间,请记住hadoop是为处理大文件而构建的,而不是处理小的{large number}文件。一定要检查你的hdfs块大小,以及你放了多少。如果是分布式模式,请确保与数据节点建立无密码连接。特别是“当我以不同的用户身份运行作业时,作业几乎会立即决定拆分的数量。”这不是hadoop的容量问题,请正确检查配置。如果可能的话,如果您有足够的预算,可以使用ambari来管理集群。

相关问题