Spark History Server を使用する

Prev Next

VPC環境で利用できます。

Spark History Serverアプリで個人用 Spark History Serverを作成し、自分が実行したタスクのみ確認できます。Data Forestでは SPARK-HISTORYSERVER-3.1.2アプリタイプをサポートします。

Spark History Serverアプリの詳細情報確認

アプリの作成が完了すると、詳細情報を確認できます。アプリの詳細情報の StatusStableの場合、アプリが正常に起動されたことを意味します。
アプリの詳細情報を確認する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
  2. 左側の Data Forest > Appsメニューをクリックします。
  3. アプリを所有するアカウントを選択します。
  4. 詳細情報を確認するアプリをクリックします。
  5. アプリの詳細情報を確認します。
    df-shs_2-1_updated_ko
    • Quick links
      • Spark History REST API: Spark History Serverで提供する REST API
      • Spark History UI: Spark History UIにアクセスできる URL
      • shell-shs-0: Spark Historyがインストールされたコンテナのウェブシェル(Web shell)の URL。ユーザーのアカウント名とパスワードでログイン
      • supervisor-shs-0: Supervisorがインストールされたコンテナのウェブシェルの URL。ユーザーのアカウント名とパスワードでログイン
    • コンポーネント: SPARK-HISTROYSERVER-3.1.2タイプは、shsコンポーネント1つで構成されます。
      • shs: デフォルト値で1Core/4GBのメモリをリクエストして起動

Spark History Serverアクセス

Quick linksリストから Spark History UI URLにアクセスした画面は、次の通りです。

df-shs_04-1_vpc

Spark History Serverは REST APIを提供します。
アプリ詳細情報の Quick linksリストから Spark History REST API URLにアクセスします。
アクセスした画面は、次の通りです。

df-shs_05-1_vpc

ウェブシェルで REST APIを使う場合は、上で確認した Spark History REST APIアドレスを利用して以下のように使用できます。以下は dataforest-testユーザーの例です。

$ curl -i -u ys https://dataforest-test--sparkhs-new--shs--18080.proxy.kr.df.naverncp.com/api/v1/version

Enter host password for user 'dataforest-test':
HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Fri, 14 Oct 2022 08:14:24 GMT
Content-Type: application/json
Content-Length: 25
Connection: keep-alive
Set-Cookie: hadoop.auth="u=dataforest-test&p=dataforest-test&t=authnz-ldap&e=1665771263843&s=v37ewQQe7TSTjntpg5rqUfZsRrRuCvfQux0P2onFy7I="; HttpOnly
Cache-Control: no-cache, no-store, must-revalidate
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Vary: Accept-Encoding, User-Agent

{
  "spark" : "3.1.2-1"
}

Sparkタスクの設定

個人用 Spark History Serverを使用するには、Sparkに以下のように入力してタスク設定を完了してください。

  • spark.eventLog.enabledspark.eventLog.enabled : true
  • spark.eventLog.dir: History Serverアプリの spark.history.fs.logDirectory設定と同じです。hdfs://koya/user/{USER}/spark2-history/ がデフォルトで設定されており、{USER}にはユーザーアカウント名を入れて作成します。
  • spark.yarn.historyServer.address: ヒストリーサーバアドレスです。アプリを作成した後、Quick linksで Spark History UIの URLを入力します。

例)
dataforest-testユーザーのユースケースは、次の通りです。

Property Name Info
spark.eventLog.enabled true
spark.eventLog.dir hdfs://koya/user/dataforest-test/spark2-history/
spark.yarn.historyServer.address https://dataforest-test--spark-historyserver--shs--18080.proxy.kr.df.naverncp.com

設定変更後にタスクを提出すると、個人用 Spark History Serverで提出したタスク情報を照会できます。

個人用 Sparkの設定変更タスク

個人用 Sparkタスクの設定を追加する方法は、次の通りです。

$ vi $SPARK_CONF_DIR/spark-defaults.conf
...
spark.eventLog.dir hdfs://koya/user/dataforest-test/spark2-history/
spark.eventLog.enabled true
spark.yarn.historyServer.address={Spark History UI}
...
参考

ウェブシェルを使用する場合、以下の設定ファイルを変更して使用してください。

  $ cd ~/conf
  $ vi spark-defaults.conf # 構成変更

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.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
  1. 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.executorEnv.YARN_CONTAINER_RUNTIME_DOCKER_MOUNTS=/usr/hdp:/usr/hdp:ro
--conf spark.kerberos.access.hadoopFileSystems=hdfs://<使用するネームノードを指定>

Zeppelinを使用する場合

Apache Zeppelinの Sparkインタプリタで個人用 Spark History Serverアプリを使用できます。Zeppelin を使用する > Interpreter設定の spark.yarn.queueの設定方法を参照し、ヒストリーサーバ関連の設定を追加してください。