Hadoop流作业创建巨大的临时文件

时间:2018-11-14 06:49:55

标签: hadoop mapper

我试图运行hadoop作业来进行单词重排,由于存储空间用完,我所有的节点很快都处于不正常状态。

这是我的映射器部分:

shingle = 5

for line in sys.stdin:
# remove leading and trailing whitespace
line = line.strip()

for i in range(0, len(line)-shingle+1):
    print ('%s\t%s' % (line[i:i+shingle], 1))

据我了解,“打印”将在每个占用存储空间的节点上生成临时文件。如果我以txt文件为例:

cat README.txt |./shingle_mapper.py >> temp.txt

我可以看到原始和临时文件的大小:

-rw-r--r-- 1个根目录1366 Nov 13 02:46 README.txt

-rw-r--r-- 1个根目录9744 Nov 14 01:43 temp.txt

临时文件的大小是输入文件的7倍,所以我想这是我的每个节点都用完所有存储的原因。

我的问题是我能正确理解临时文件吗?如果是这样,还有什么更好的方法来减少临时文件的大小(增加存储空间对我来说不是一种选择)?

0 个答案:

没有答案