Spark 3 バージョンを使用する
    • PDF

    Spark 3 バージョンを使用する

    • PDF

    Article Summary

    VPC環境で利用できます。

    ユーザーが任意のSpark実行環境を構成することができます。

    このガイドでは、Cloud HadoopでSpark 3バージョンをインストールしてSparkの実行環境を構成する方法をご紹介します。

    事前作業

    この例は、既にClientに適用された環境で実行すると仮定して説明します。
    Serverを利用してClientに構成する必要がある場合にのみ、以下の事前作業1~4を行ってください。

    1. サーバとクラスタ間の通信の確認

    サーバとクラスタ間の通信ができるかを確認してください。
    サーバはCloud Hadoopクラスタが構成されているACGに登録される必要があります。
    ACGに関する詳細は、ACGの設定をご参照ください。

    2. Cloud Hadoopのクラスタホスト名とIP情報の登録

    Cloud Hadoopクラスタのホスト名とIP情報を/etc/hostsに登録してください。
    この情報は、Ambari UIで確認できます。
    Ambari UIへのアクセスや使用に関する詳細は、Ambari UIをご参照ください。
    hadoop-chadoop-use-ex2_0-1_ja

    • /etc/hostsにCloud Hadoopクラスタのホスト名とPrivate IP情報を登録する方法は次のとおりです。
    # root ユーザー
    # echo 'IP            ホスト名'      >> /etc/hosts
    echo  '1**.**.*.*  e-001-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  m-001-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  m-002-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  d-001-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  d-002-*****-**'  >> /etc/hosts
    

    3. ​Hadoop Clientの構成

    SparkではHadoopの環境変数を使用するため、Hadoop Client構成が必要です。
    簡単なrepo設定とyumコマンドでhadoop-clientパッケージをインストールできます。

    hadoop-clientパッケージをインストールする方法は、以下のとおりです。

    1. 以下のコマンドを使用して/etc/yum.repos.d/ambari-hdp-1.repoファイルを構成します。

      $ cat /etc/yum.repos.d/ambari-hdp-1.repo
      [HDP-3.1-repo-1]
      name=HDP-3.1-repo-1
      baseurl=http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0
      path=/
      enabled=1
      gpgcheck=0
      [HDP-3.1-GPL-repo-1]
      name=HDP-3.1-GPL-repo-1
      baseurl=http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0
      path=/
      enabled=1
      gpgcheck=0
      [HDP-UTILS-1.1.0.22-repo-1]
      name=HDP-UTILS-1.1.0.22-repo-1
      baseurl=http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7
      path=/
      enabled=1
      
    2. 以下のコマンドを使用して/usr/hdp/current/の下にhadoop-clientが作成されたか確認します。

      $ yum clean all 
      $ yum install hadoop-client
      $ curl -u $AMBARI_ID:$AMBARI_PASS -H "X-Requested-By: ambari" -X GET http://$AMBARI_URI:8080/api/v1/clusters/$CLUSTER_NAME/services/HDFS/components/HDFS_CLIENT?format=client_config_tar > hdfs_client_conf.tar.gz
      $ tar -xvf hdfs_client_conf.tar.gz
      $ cp ~hdfs_client_conf/conf/* /usr/hdp/current/hadoop-client/conf/
      

    4. JDK、Python 3のインストール有無の確認

    JDKとPython 3をあらかじめインストールする必要があります。
    以前のSparkバージョンはPython 2を使用できましたが、Spark 3.0.0からはPython 3のみ使用できます。

    以下のコマンドを実行してPython 3をインストールしてください。

    $ yum install -y python3
    

    Spark 3.0.1バージョンの適用

    1. Sparkパッケージのダウンロード

    以下のコマンドを用いてサーバで使用したいSparkパッケージをダウンロードし、圧縮を展開してください。

    • Spark 3.0.1のダウンロードページ:https://archive.apache.org/dist/spark/spark-3.0.1/
    • 既にHadoop Clientが構成された環境で実行するため、Pre-built with user-provided Apache Hadoop(spark-3.0.1-bin-without-hadoop.tgz)をダウンロードした後、任意のディレクトリで圧縮を展開してください。
      hadoop-chadoop-use-ex2_1-1_ja
    $ wget https://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-without-hadoop.tgz
    $ tar xvfz spark-3.0.1-bin-without-hadoop.tgz
    

    2. Sparkの環境変数の設定

    以下のコマンドを用いてSparkの環境変数を設定し、圧縮を展開したパッケージにコピーしたhadoop jarを貼り付けてください。

    # 圧縮を展開したSparkディレクトリを明示します。
    $ SPARK_HOME=/path/to/spark-3.0.1-bin-without-hadoop
    $ SPARK_CONF_DIR=/path/to/spark-3.0.1-bin-without-hadoop/conf
    
    
    # Configファイルのコピー
    $ cp /usr/hdp/current/spark2-client/conf/* $SPARK_CONF_DIR/
    
    
    # Hadoop関連のjarをSpark jarsのディレクトリにコピーします。
    $ cp -n /usr/hdp/current/spark2-client/jars/hadoop-*.jar $SPARK_HOME/jars
    

    spark-submitが実行される場所で以下の環境変数を設定します。

    $ export SPARK_HOME=/path/to/spark-3.0.1-bin-without-hadoop
    $ export SPARK_CONF_DIR=/path/to/spark-3.0.1-bin-without-hadoop/conf
    $ export SPARK_SUBMIT_OPTS="-Dhdp.version=3.1.0.0-78"
    $ export PATH=$SPARK_HOME/bin:$PATH
    $ export SPARK_DIST_CLASSPATH=`$HADOOP_COMMON_HOME/bin/hadoop classpath`
    

    3. 起動の確認

    以下のコマンドを使用して、インストールバージョン情報で起動されるか確認してください。
    以下の画面のように表示されたら、Spark 3.0.1を使用できる状態です。

    $ pyspark --version
    

    hadoop-chadoop-use-ex2_1-2_ja

    4. Owner権限の付与

    以下のコマンドを用いて/userの下にユーザー専用フォルダを作成し、owner権限を付与してください。
    Spark Jobは、ユーザーアカウント{USER}のフォルダがHDFSの/userの下にあると正常に動作します。

    以下の例は、USERがsshuserの場合です。

    $ sudo -u hdfs hadoop fs -mkdir /user/sshuser
    $ sudo -u hdfs hadoop fs -chown -R sshuser:hdfs /user/sshuser/
    

    5. PySpark、spark-shellの実行

    PySparkとspark-shellを実行する方法は、以下のとおりです。

    1. PySparkを実行する際に以下のオプションを追加して実行します。

      $ pyspark --conf spark.driver.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
      --conf spark.yarn.am.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
      --conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro \
      --conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
      
    2. spark-shellも以下のコマンドで実行します。

      spark-shell --conf spark.driver.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
      --conf spark.yarn.am.extraJavaOptions=-Dhdp.version=3.1.0.0-78 \
      --conf spark.yarn.appMasterEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro \
      --conf spark.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
      --conf spark.kerberos.access.hadoopFileSystems=hdfs://<使用するネームノードを明示>
      

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.