hadoop:多个map任务如何确保它们不竞争资源?

2mbi3lxu  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(280)

我将有3个工作同时运行在hadoop,他们是无关的。
其中一个文件的输入是通过http,即大文件的缓慢下载。
其他的是来自hdfs和s3n文件系统的输入。
我对用hadoop构建这种东西还不熟悉。
如何优化Map阶段?
我希望磁盘读取至少在下载发生的同时发生,这似乎是合乎逻辑的。
我当然不希望所有的大型磁盘操作都等待下载(每20次下载可能需要一个小时)
我想我不想有多个,大,磁盘读取发生在同一时间。
hadoop是如何处理这个map/input/data-acquisition阶段的?

mgdq6dx1

mgdq6dx11#

在mapreduce中,通常所有的maps/Reducer都做相同的工作。
但您可以通过两种不同的解决方案来实现您的目标:
1.基本上,您应该考虑将作业拆分为两个独立的作业,然后使用每个节点指定数量的任务启动它们。https://issues.apache.org/jira/browse/hadoop-5170 但这种贴片只适用于cdh,而不适用于碱基分布。
2.另一个选择是实现您自己的输入格式,它将能够对map操作进行编码,并平衡每个节点不同任务的数量。这可以通过在inputsplit中为每个分割指定主机来实现。

相关问题