Python 如何限制本地MRJob任务中的进程数
我正在使用MRJob在8核机器上运行MapReduce作业。我使用Python API编写了它,并以Python 如何限制本地MRJob任务中的进程数,python,hadoop,mrjob,Python,Hadoop,Mrjob,我正在使用MRJob在8核机器上运行MapReduce作业。我使用Python API编写了它,并以 $ python main.py -r local files/input* 该文件夹中有大约750个输入文件,当我以这种方式运行它时,我相信mrjob启动的映射程序的数量与输入文件的数量相同。即使这台机器有8个内核,我也认为平均负载为 load average: 551.26, 553.29, 556.82 有没有办法限制地图绘制者的数量,使其一次只能发布8(或16)个地图绘制者?我找不到
$ python main.py -r local files/input*
该文件夹中有大约750个输入文件,当我以这种方式运行它时,我相信mrjob启动的映射程序的数量与输入文件的数量相同。即使这台机器有8个内核,我也认为平均负载为
load average: 551.26, 553.29, 556.82
有没有办法限制地图绘制者的数量,使其一次只能发布8(或16)个地图绘制者?我找不到这个配置选项,这表明我在某个地方做错了什么
谢谢
编辑
这是我的MRjob任务的大致轮廓
from mrjob.job import MRJob
from mrjob.step import MRStep
class MyMR(MRJob):
def mapper_xml_init(self):
self.abuf = ""
def mapper_xml(self, _, line):
self.abuf += line.strip()
# ... work with self.abuf
if acondition:
self.abuf = ""
def reducer_mean(self, _, values):
# process some stuff
def steps(self):
return [
MRStep(mapper_init=self.mapper_xml_init,
mapper=self.mapper_xml),
MRStep(reducer=self.reducer_mean),
]
if __name__ == '__main__':
MyMR.run()
你能给我一些关于如何在main.py中访问Hadoop的详细信息吗?@stefanpap,谢谢你询问更多信息!我加上了这份工作的大致轮廓。我正在为文件夹中的所有文件运行此操作。你知道我为什么有700个进程吗?