Sparkの"Hadoop Free"ビルドの使用

SparkはHDFSおよびYARNのためのHadoopクライアントライブラリを使います。Spark1.4のバージョンから、プロジェクトは単一のSparkバイナリを任意のHadoopバージョンにもっと簡単に接続させる"Hadoop free"ビルドをパッケージします。これらのビルドを使うには、Hadoopのパッケージjarを含めるためにSPARK_DIST_CLASSPATH を修正する必要があります。これを行うもっとも便利な場所はconf/spark-env.shに記入することです。

このページは異なる種類のディストリビューションのためにSparkがHadoopにどうやって接続するかを説明します。

Apache Hadoop

Apacheの配布物の場合、Hadoopの'classpath'コマンドを使うことができます。例えば:

### in conf/spark-env.sh ###

# If 'hadoop' binary is on your PATH
export SPARK_DIST_CLASSPATH=$(hadoop classpath)

# With explicit path to 'hadoop' binary
export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath)

# Passing a Hadoop configuration directory
export SPARK_DIST_CLASSPATH=$(hadoop --config /path/to/configs classpath)

Hadoop Free Build Setup for Spark on Kubernetes

To run the Hadoop free build of Spark on Kubernetes, the executor image must have the appropriate version of Hadoop binaries and the correct SPARK_DIST_CLASSPATH value set. See the example below for the relevant changes needed in the executor Dockerfile:

### Set environment variables in the executor dockerfile ###

ENV SPARK_HOME="/opt/spark"  
ENV HADOOP_HOME="/opt/hadoop"  
ENV PATH="$SPARK_HOME/bin:$HADOOP_HOME/bin:$PATH"  
...  

#Copy your target hadoop binaries to the executor hadoop home   

COPY /opt/hadoop3  $HADOOP_HOME  
...

#Copy and use the Spark provided entrypoint.sh. $HADOOP_HOME の hadoop バイナリを使って SPARK_DIST_CLASSPATH を設定し、executor を開始します。If you choose to customize the value of SPARK_DIST_CLASSPATH here, the value will be retained in entrypoint.sh

ENTRYPOINT [ "/opt/entrypoint.sh" ]
...  
TOP
inserted by FC2 system