Zeppelin を使用する

Prev Next

Classic環境で利用できます。

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

Zeppelin Notebook UIへのアクセス

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

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

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

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

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

http://{Publicドメイン}:9995

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 をクリックします。
    chadoop-4-4-007_ja.png

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

    • Default Interpreter は、ノートを作成した後にも変更できます。
      chadoop-4-4-008_ja.png
参考

Default Interpreter を Sparkに設定するには、クラスタの作成時にクラスタ Type を Sparkに選択する必要があります。

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

以下は、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://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv"),
        Charset.forName("utf8")).split("\n"))

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

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("\"", ""),
            s(5).replaceAll("\"", "").toInt
        )
).toDF()
bank.registerTempTable("bank")

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

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

  1. [Shift] + [Enter] キーを押すか、cloudhadoop-zeppelin-runをクリックしてコードを実行します。
  • FINISHED 状態と Took 5 sec メッセージが表示されると、コードが正常に実行されたという意味です。
    chadoop-4-4-009_ja.png
  1. 新しい段落でテーブルのデータを照会する 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
    

    chadoop-4-4-010_ja.png

Zeppelin Notebookのバックアップ

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

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

  1. 画面上部の cloudhadoop-zeppelin-download をクリックします。
    chadoop-4-4-012_ja.png

  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のライブラリ依存関係(バージョン、ライブラリ名など)を確認します。