Zeppelin を使用する

Prev Next

VPC環境で利用できます。

NAVERクラウドプラットフォームの Cloud Hadoopには Zeppelin Notebookがインストールされています。
このガイドでは、Zeppelin Notebook UIへのアクセス方法と簡単なユースケースの実行方法について説明します。
Zeppelinに関する詳細は、Apache Zeppelin公式ホームページをご参照ください。

Zeppelin Notebook UIへのアクセス

Zeppelin Notebook UIにアクセスする方法は、次の通りです。

コンソールの Web UIリストを介したアクセス

Cloud Hadoopコンソールで [Application別に見る] から Zeppelin Notebook UIにアクセスできます。詳細は、Application別に見るをご参照ください。

ウェブブラウザから直接アクセス

ウェブブラウザを立ち上げ、アドレスバーに以下のように入力してアクセスします。クラスタに割り当てられたドメインアドレスを使用します。

https://{ドメインアドレス}:9996

Ambari Web UIを介したアクセス方法

Ambari Web UIを介したアクセス方法は、次の通りです。

  1. Ambari UIにアクセスします。
    • Ambari UIへのアクセスに関する詳細は、Ambari UIガイドをご参照ください。
  2. Ambari UI画面で Zeppelin Notebook > Quick Links > Zeppelin UIを順にクリックします。
  3. ブラウザにログインページが表示されたら、クラスタの作成時に設定した管理者アカウントとパスワードを入力してログインします。
    • アクセスに成功すると、Zeppelinページの右上にある [login] ボタンの横にグリーンの点が表示されます。

Zeppelin Notebook を開始する

Zeppelin Notebookを作成し、データを入力して結果をグラフで確認できます。
このガイドは、Zeppelin Notebookでデフォルトとして提供している Zeppelin Tutorial(Basic Features)Notebookを参照して作成されました。

Notebook作成

Notebookを作成する方法は、次の通りです。

  1. Zeppelin上部の [Notebook] > Create new noteをクリックします。
    cloudhadoop-use-zeppelin1_ko

  2. Notebookの名前と情報を設定し、 [Create] ボタンをクリックします。

    • Default Interpreterは、ノート作成後にも変更できます。
      cloudhadoop-use-zeppelin2_ko

テーブルにデータをロード

以下は、bank.csvのデータを bankテーブルにロードするサンプルコードです。

%spark.spark
import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset

// Zeppelin creates and injects sc (SparkContext) and sqlContext (HiveContext or SqlContext)
// So you don't need create them manually

// load bank data
val bankText = sc.parallelize(
IOUtils.toString(
new URL("https://raw.githubusercontent.com/selva86/datasets/refs/heads/master/bank-full.csv"),
Charset.forName("utf8")).split("\n"))

case class Bank(age: Integer, job: String, marital: String, education: String)

val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
s => Bank(s(0).toInt,
s(1).replaceAll("\"", ""),
s(2).replaceAll("\"", ""),
s(3).replaceAll("\"", "")
)
).toDF()
bank.registerTempTable("bank")

コードの実行と結果の照会

Zeppelin Notebookコードの実行と結果を確認する方法は、次の通りです。

  1. [Shift] + [Enter] キーを押すか、cloudhadoop-zeppelin-runをクリックしてコードを実行します。

    • FINISHEDステータスと Took 4 secメッセージが表示されると、コードが正常に実行されたという意味です。
      cloudhadoop-use-zeppelin3
  2. 新しい段落でテーブルのデータを照会する Spark SQL構文を作成して [Shift] + [Enter] キーを押すか、cloudhadoop-zeppelin-runをクリックしてコードを実行します。

    • 照会の結果画面が表示されます。グラフボタンを利用し、SQLの結果を様々な種類のグラフで確認できます。
    %spark.sql
    select age, count(1) value
    from bank
    where age < 30
    group by age
    order by age
    

    cloudhadoop-use-zeppelin4

Zeppelin Notebookのバックアップ

Zeppelin Notebookは、クラスタのマスターノードの1番サーバに保存されます。そのため、クラスタを削除すると Notebookも一緒に削除されます。
同じ Notebookを別のクラスタで使用するには、タスクの実行を完了した後、Notebookをエクスポートする必要があります。

Zeppelin Notebookをバックアップする方法は、次の通りです。

  1. Notebook画面上段の cloudhadoop-zeppelin-download ボタンをクリックします。
  2. ローカル PCにファイル名とパスを決めた後、保存します。
    • エクスポートしたファイルは JSON形式で保存されます。
参考

Zeppelin Notebookのバックアップ時、Notebook単位で保存します。

参考

zeppelinで jdbc interpreterをインストールするには、エッジサーバで/etc/zeppelin/conf/interpreter-listファイルの jdbcバージョン情報を変更した後、インストールします。

変更前: jdbc org.apache.zeppelin:zeppelin-jdbc:0.11.0-SANPSHOT Jdbc interpreter
変更後: jdbc org.apache.zeppelin:zeppelin-jdbc:0.10.1 Jdbc interpreter

詳細は、メイブンで jdbc interpreterのライブラリ依存関係(バージョン、ライブラリ名など)を確認します。