Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spark SAVEASTEXTfile需要花费大量时间-1.6.3_Java_Apache Spark_Hadoop_Rdd - Fatal编程技术网

Java spark SAVEASTEXTfile需要花费大量时间-1.6.3

Java spark SAVEASTEXTfile需要花费大量时间-1.6.3,java,apache-spark,hadoop,rdd,Java,Apache Spark,Hadoop,Rdd,我从Mongo中提取数据。处理数据,然后将数据存储在HDFS中 1M记录的提取和处理完成时间不到1.1分钟 提取代码 JavaRDD<Document> rdd = MongoSpark.load(jsc); 这至少需要15到20分钟才能将其保存到HDFS中 不知道为什么要花很多时间。 如果可以做些什么来加快流程,请告诉我 我正在使用以下选项运行它, --num executors 4--执行器内存4g--执行器内核4 如果我增加执行者或内存的#,仍然没有任何区别。 我已将分区的#

我从Mongo中提取数据。处理数据,然后将数据存储在HDFS中

1M记录的提取和处理完成时间不到1.1分钟

提取代码

JavaRDD<Document> rdd = MongoSpark.load(jsc);
这至少需要15到20分钟才能将其保存到HDFS中

不知道为什么要花很多时间。 如果可以做些什么来加快流程,请告诉我

我正在使用以下选项运行它, --num executors 4--执行器内存4g--执行器内核4

如果我增加执行者或内存的#,仍然没有任何区别。 我已将分区的#设置为70,不确定是否增加了该值,是否会提高性能

任何缩短储蓄时间的建议都是有益的

提前谢谢

fullFile
   .coalesce(1)
   .saveAsTextFile(args[4], GzipCodec.class);
在这里,您使用的是
coalesce(1)
意味着您只需要将分区数减少到1,这就是为什么它需要更多的时间。由于它们在写入时只有一个分区,因此只有一个任务/执行器将在所需位置写入整个数据。如果希望写入速度快于增加coalesce中的分区值。
只需删除
合并
或增加
合并
中的值即可。在spark UI中写入数据时不能使用分区。

可以禁用洗牌触发合并吗?另外,你认为你可以选择一个不同的编解码器会有所帮助吗?@raja777m-我应该如何禁用Shuffle Fire?我将搜索其他可用的编解码器。@raja777m:Spark 1.6.3不允许在Coalesche-Akshansh中洗牌为false-我有另一个模块,我采用相同的方法,大约有1m条记录,但保存记录的速度比这个快得多。不确定性能差异的原因是什么。嗨,阿肯什,我还有一组数据,存储时间不到一分钟。。但是我不知道为什么这比这个快很多。。两者之间的列数几乎相同。Hi@SamBerchmans,您能比较一下从spark UI和DAG写入数据时创建的分区吗。
  fullFile
   .coalesce(1)
   .saveAsTextFile(args[4], GzipCodec.class);
fullFile
   .coalesce(1)
   .saveAsTextFile(args[4], GzipCodec.class);