Spark を試しているところですが、非常に遅いことがわかりました。私が言いたいことを示すために、以下に例を示しました.SparkがHDFSから10行のテキストファイルをロードし、行数を数えるのに2秒近くかかります. 私の質問:
- これは期待されていますか?プラットフォームにどれくらい時間がかかりますか?
- 考えられる理由は何ですか?現在、2 ノードの Hadoop クラスター (両方とも 8 コア、64G RAM) で Spark 1.3 を使用しています。Hadoop と Spark に関しては、私はかなりグリーンなので、Ambari/HDP のデフォルト以外の構成はほとんど行っていません。
当初、私は 1 億行でテストしていました。Spark は単純にカウントするのに約 10 分かかりました。
例:
10 個の数字のテキスト ファイルを作成し、hadoop に読み込みます。
for i in {1..10}; do echo $1 >> numbers.txt; done
hadoop fs -put numbers.txt numbers.txt
pyspark を開始します (約 20 秒かかります...):
pyspark --master yarn-client --executor-memory 4G --executor-cores 1 --driver-memory 4G --conf spark.python.worker.memory=4G
HDFS からファイルをロードしてカウントします。
sc.textFile('numbers.txt').count()
フィードバックによると、Spark がそれを行うのに約 1.6 秒かかります。ひどい構成でも、それほど時間がかかるとは思いません。