尝试将6000个小型实木复合地板文件合并为一个实木复合地板文件

时间:2019-08-29 09:14:18

标签: merge parquet

我在hdfs中有6000个实木复合地板文件(每个5-15 kb),这创建了很多spark任务。我需要将它们合并到一个文件中。

我已经尝试了以下代码。第一个问题是它正在生成一个文本文件,我需要一个实木复合地板文件作为输出。

第二个问题是,它可以在300-400个文件中正常工作,但是当我尝试6000个文件时会出现错误消息“打开太多文件”。

1。)

hadoop jar \
 hadoop-streaming-3.2.0.jar \
-Dmapred.reduce.tasks=1 \
-Dmapred.job.queue.name=queue \
-Dstream.reduce.output=parquet \
-input "input file" \
-output "output file" \
-mapper cat \
-reducer cat

2。)

hadoop jar parquet-tools-1.9.0.jar merge /inputfile /outputfile 

因此,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以在OS中将打开文件的限制增加到6000。 校验: ulimit -a | grep打开

限制在这里配置 /etc/security/limits.conf