Sparkのダウンロードバージョンの違い

Sparkのダウンロードバージョンの違い

Spark公式ウェブサイトPre-built for Apache HadoopとのPre-built with user-provided Apache Hadoop違いについて混乱しています。
なぜSparkそんなに多くのバージョンをダウンロードするのですか?この記事では、2.1.1バージョンをテストとして使用します。

Apache Hadoop用にビルド済み

インストールされたJavaマシンで次のコマンド実行します

# 0. 进入测试目录
cd /tmp

# 1. 下载Spark 并解压
wget https://archive.apache.org/dist/spark/spark-2.1.1/spark-2.1.1-bin-hadoop2.7.tgz
tar -xf spark-2.1.1-bin-hadoop2.7.tgz

# 2. 运行Spark
cd /tmp/spark-2.1.1-bin-hadoop2.7 &&\
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
# 程序是可以正常运行的且可以看到
# 类似于Pi is roughly 3.1408123140812316 的字样

ユーザー提供のApache Hadoopを使用して事前構築

インストールされたJavaマシンで次のコマンド実行します

# 0. 进入测试目录
cd /tmp

# 1. 下载Spark 并解压
wget https://archive.apache.org/dist/spark/spark-2.1.1/spark-2.1.1-bin-without-hadoop.tgz
tar -xf spark-2.1.1-bin-without-hadoop.tgz

# 2. 运行Spark
cd /tmp/spark-2.1.1-bin-without-hadoop &&\
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
# 直接报错,java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream

# 3. 与之前的spark-2.1.1-bin-hadoop2.7.tgz 对比以下jar 包
ls spark-2.1.1-bin-hadoop2.7/jars/ > h.txt
ls spark-2.1.1-bin-without-hadoop/jars/ > w.txt
diff -y -W 50 h.txt w.txt  # -y 并排对比,-W 列宽
# 看到右边的w.txt 内容中少了很多Hadoop 的包

# 4. 下载Hadoop 并解压
cd /tmp && wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
tar -xf hadoop-2.7.2.tar.gz

# 5. 确认Hadoop 的版本
/tmp/hadoop-2.7.2/bin/hadoop version

# 6. 关联Spark-Without-Hadoop 和Hadoop
cat > /tmp/spark-2.1.1-bin-without-hadoop/conf/spark-env.sh << 'EOF'
#!/usr/bin/env bash
export SPARK_DIST_CLASSPATH=$(/tmp/hadoop-2.7.2/bin/hadoop classpath)
EOF

# 7. 再次运行Spark
cd /tmp/spark-2.1.1-bin-without-hadoop &&\
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100 2>&1 | grep 'Pi is'
# 成功显示Pi is roughly 3.1424395142439514

まとめ

以上の実験から分かるように、[USER-で予め構築されたが (#ユーザ提供のApache Hadoopので予め構築された)はApacheのHadoopを設け] 構成ファイルを変更する適応の独自のバージョンを必要とHadoop実際の実行がクラスパスに追加される、HadoopJarパッケージ、および[ApacheのHadoopのための事前構築された] (#はApache Hadoopのための事前構築された)は、対応する前進する、箱から出して行われHadoop Jar、その中にパックバンドルを、そして理由Hadoop 2.6インターフェイスが同じで、そうでない分割された2つのバージョン。Hadoop 2.7HDFSPre-built for Apache Hadoop

参考資料

Sparkの「Hadoop Free」ビルドの使用
ダウンロードページのSparkのパッケージタイプの違いは何ですか?

元の記事を27件公開 賞賛4件 訪問9691件

おすすめ

転載: blog.csdn.net/yoshubom/article/details/104598483