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を実行することが出来た。