apache zeppelinでsparkが動かない問題(Service 'sparkDriver' could not bind on port 0. Attempting port 1. )の解決

apache zeppelin https://zeppelin.apache.org/チュートリアルを実行しようとした際に、ハマったのでメモ。

zeppelinはjypter notebookみたいにウェブブラウザから様々な言語(R, python, scala)やツール(spark, bigquery, hadoop等)を実行できる環境のこと。 チュートリアルとしてsparkを動かすものがあるのだが、これがエラーになっており動かない。

ログを確認すると以下のように表示されている

WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
ERROR SparkContext: Error initializing SparkContext.

これの原因はapache zeppelinがインストールされているサーバのホストネームの設定が誤っていること。 一度誤った固定IPとそれに紐づくドメインを設定していて、そのままになっていたのを忘れていた。

誤ったIP: 196.18.35.2 誤ったドメイン: tmks0828.jp.example.com 正しいIP: 196.18.35.1 正しいドメイン: tmks0820.jp.example.com

サーバのホストネームの設定と/etc/hostsの記述を変更する

$ hostname
tmks0828.jp.example.com

$ hostname tmks0820.jp.example.com

$ hostname
tmks0820.jp.example.com

$ vim /etc/hosts

....
196.18.35.1 tmks0820.jp.example.com
....

zeppelinを再起動すると、チュートリアルのsparkを実行することが出来た。