VPC環境で利用できます。
Spark History Serverアプリで個人用 Spark History Serverを作成し、自分が実行したタスクのみ確認できます。Data Forestでは SPARK-HISTORYSERVER-3.1.2アプリタイプをサポートします。
Spark History Serverアプリの詳細情報確認
アプリの作成が完了すると、詳細情報を確認できます。アプリの詳細情報の Statusが Stableの場合、アプリが正常に起動されたことを意味します。
アプリの詳細情報を確認する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Big Data & Analytics > Data Forestメニューを順にクリックします。 - 左側の Data Forest > Appsメニューをクリックします。
- アプリを所有するアカウントを選択します。
- 詳細情報を確認するアプリをクリックします。
- アプリの詳細情報を確認します。
- 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のメモリをリクエストして起動
- Quick links
Spark History Serverアクセス
Quick linksリストから Spark History UI URLにアクセスした画面は、次の通りです。

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

ウェブシェルで 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を実行する方法は、次の通りです。
- 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
- 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の設定方法を参照し、ヒストリーサーバ関連の設定を追加してください。