使用前に

Q. Sparkクラスタを利用していますが Zeppelin Notebookに接続できません。

  • AmbariウェブUIにアクセスしてZeppelin Notebookが正常に作動しているか確認します。

Cloud HadoopでのZeppelin使用法

Cloud Hadoopクラスタ生成の際にクラスタTypeがSparkであるクラスタにのみZeppelin Notebookが設置されています。

ZeppelinはCLI(Command Line Interface)基盤のSparkをウェブ基盤に簡単に分析して結果をグラフとして可視化してくれるウェブアプリケーションです。詳しくは Apache Zeppelin ページをご参照ください。

Zeppelin Notebook UIにアクセス

Zeppelin Notebook UIはコンソールの [Application別にみる]タブ内から Zeppelin Notebookアクセスボタンを利用します。

直接アクセス方法

ウェブブラウザのアドレス入力欄に次のように入力します。クラスタに割り当てられたPublic domain アドレスを使用します。

http://Public domain:9995

Ambari ウェブUIを通じたアクセス方法

1532591294466

1532591294466

1532591294466

  • アクセスに成功すると、Zeppelin ページ上段右側のloginボタンの隣に緑の点が表示されます。
  • ログインアカウントはクラスタを生成する際にコンソールで設定したAdminアカウントと同じです。

Zeppelin Notebookのスタート

Zeppelin Notebookを生成してデータを入力し、結果グラフを確認できます。

このガイドの内容はZeppelin Notebookに基本で提供される"Zeppelin Tutorial (Basic Features)" Notebookを参考にしました。

  1. 新たなNotebookを生成します。

    ① Zeppelin 上段のNotebookをクリックします。

    Create new noteをクリックします。

    ③ ノート名を入力してノートを生成します。

    Default Interpreterノート生成後も変更できます。

    1532591294466

    1532591294466

  2. テーブルにデータをロードするコードをNotebookに作成します。

    次は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")
    
  3. Shift + Enter キーを押すか、または 再生をクリックしてコードを実行します。

    FINISHED 状態と Took 30 sec 文でコードが正常に実行されたことを確認できます。

    1532591294466

  4. 新たな段落にテーブルのデータを照会するSpark SQL文を作成します。

    %spark.sql
    select age, count(1) value
    from bank
    where age < 30
    group by age
    order by age
    
  5. Shift + Enterき キーを押すか、または 再生をクリックしてコードを実行します。グラフボタンをクリックしてSQL結果をグラフでみることができます。

    1532591294466

    1532591294466

Zeppelin Notebookのバックアップ

Zeppelin Notebookはクラスタマスターノードの1番サーバに保存されます。従って、クラスタを削除するとNotebookも削除されます。

同じNotebookを他のクラスタで使用するためには作業の実行を完了した後にNotebookをエクスポートする必要があります。NotebookのバックアップはNotebook単位でできます。エクスポートアイコンをクリックしてNotebookをローカルパソコンにバックアップします。エクスポートしたファイルは JSON 形式で保存されます。

1532591294466

関連情報へショートカット

Hadoopクラスタの生成、管理及び使用については以下の使用ガイドをご参照ください。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...