Data Forest を開始する
    • PDF

    Data Forest を開始する

    • PDF

    Article Summary

    VPC環境で利用できます。

    Data Forestのアプリケーションスペックを確認して全体シナリオを十分熟知すると、Data Forestの利用を始めるための準備が完了します。このガイドでは Data Forestと Data Forestアプリにアクセスするためのノートブックの作成およびクライアント環境設定方法について説明します。

    ノートブック作成

    ノートブックを作成する方法は、次の通りです。

    事前作業

    ネットワークへのアクセス制御のために VPCと Subnetを作成します。

    1. Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
    2. Notebooks[ノートブック作成] ボタンをクリックします。
    3. ノートブックの設定情報を入力し、 [次へ] ボタンをクリックします。
      • アカウント名: 「df123」と入力
      • ノートブック名: 「my-notebook」と入力
      • VPC/Subnet: 事前作業で作成した情報を入力
    4. ユーザー設定が必要な場合、関連情報を入力します。
    5. 認証キーの設定で保有している認証キーを選択するか、新しい認証キーを作成して [次へ] ボタンをクリックします。
    6. 最終確認し、[作成] ボタンをクリックします。

    ノートブックノードで開発環境設定

    ノートブックの作成が完了したら VPC環境で Dockerコンテナを通じて Data Forestクラスタおよびアプリに簡単にアクセスできるように開発環境設定ができます。

    参考

    ホストが CentOS 7.3の場合を基準に説明します。

    Step 1. ノートブックノードおよび Dockerアクセス

    ノートブックノードに稼働した Dockerにアクセスする方法は以下の2つの方法があります。

    • ノートブック WEB UIを介してアクセスする方法
    • ノートブックノードに SSHアクセスした後、稼働した Dockerにアクセスする方法
    参考
    • ノートブックにアクセスする方法に関する詳しい説明は、ノートブックの作成と管理をご参照ください。
    • Data Forestで提供される Notebook Dockerには Data Forestアプリが実行されるネットワークにアクセスするための別途のオーバーレイネットワーク(Overlay Network)の設定が構成されています。

    Step 2. キータブの確認と認証

    Data Forestコンポーネントにアクセスするには Kerberos認証を完了します。アカウントの作成後にアクセス情報でダウンロードしたキータブファイルを活用します。

    ノートブックノードの作成時に Data Forestアカウントのキータブが Docker内にダウンロードされています。以下のパスから確認できます。

    • ユーザーキータブのダウンロードパス
      • forestアカウントのホームディレクトリである /home/forest/keytab

    認証を行うには以下のようにコマンドを実行してください。

    [forest@0242f09990ad ~][df]$ cd keytabs/
    [forest@0242f09990ad keytabs][df]$ ll
    total 4
    -rw-r--r-- 1 forest forest 218 Dec 21 15:19 df.example.keytab
    [forest@0242f09990ad keytabs][df]$ kinit example -kt df.example.keytab
    [forest@0242f09990ad keytabs][df]$ klist
    Ticket cache: FILE:/tmp/krb5cc_500
    Default principal: example@KR.DF.NAVERNCP.COM
    
    Valid starting       Expires              Service principal
    12/21/2020 17:07:42  12/22/2020 17:07:42  krbtgt/KR.DF.NAVERNCP.COM@KR.DF.NAVERNCP.COM
    	renew until 12/28/2020 17:07:42
    

    認証履歴を削除するにはkdestroyコマンドを実行してください。

    [forest@0242f09990ad keytabs][df]$ kdestroy
    [forest@0242f09990ad keytabs][df]$ klist
    klist: No credentials cache found (filename: /tmp/krb5cc_500)
    
    参考

    キータブファイルがないとユーザー認証ができないため、すべての動作で権限エラーが発生する可能性があります。

    Step 3. 開発環境を使用する

    1. 環境変数の確認

    hadoopyarnspark-submitなどのコマンドを使用する際に必要な環境変数は既に指定されています。

    [forest@0242f09990ad keytabs][df]$ cat /etc/profile.d/zz-df-env.sh
    # DO NOT EDIT THIS LINE
    # FOR CLUSTER df ENVIRONMENTS
    export HADOOP_CONF_DIR=/etc/hadoop/conf
    export HIVE_CONF_DIR=/etc/hive/conf
    export SPARK_CONF_DIR=/etc/spark2/conf
    ...
    

    2. 様々なコマンドの実行

    [forest@0242f09990ad keytabs][df]$ hadoop fs -touch /user/example/test.txt
    [forest@0242f09990ad keytabs][df]$ hadoop fs -ls
    Found 4 items
    drwxr-xr-x   - example       services          0 2020-12-21 16:33 .sparkStaging
    drwxr-x---   - example       services          0 2020-12-21 15:21 .yarn
    -rw-------   3 example       services          0 2020-12-21 17:10 test.txt
    
    参考
    • ユーザーの HDFS HOME (/user/${USER})以外の他のパスにあるファイルにはアクセスできません。
    • ユーザー認証が完了していない場合、コマンドを実行するとxxxxxというメッセージが表示されます。認証と認証履歴の削除を参考にして認証を行ってください。

    以下のようにユーザーが作成したアプリケーションを照会したり、アプリケーションのステータスを変更したりできます。

    [forest@0242f09990ad keytabs][df]$ yarn app -list
    20/12/21 17:11:43 INFO client.AHSProxy: Connecting to Application History server at rm1.kr.df.naverncp.com/10.213.198.24:10200
    Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
                    Application-Id	    Application-Name	    Application-Type	      User     Queue	             State	       Final-State	       Progress	                       Tracking-URL
    application_1608526482493_0002	                 dev	        yarn-service	   example       dev	           RUNNING	         UNDEFINED	           100%	                                N/A
    

    以下のように oozie jobsを確認できます。

    [forest@0242f09990ad keytabs][df]$ oozie jobs
    Job ID                                   App Name     Status    User      Group     Started                 Ended
    ------------------------------------------------------------------------------------------------------------------------------------
    0000000-201125175300661-oz-df-W          no-op-wf     SUCCEEDED example -         2020-11-25 08:56 GMT    2020-11-25 08:56 GMT
    ------------------------------------------------------------------------------------------------------------------------------------
    

    以下のように spark-shellを使用してコマンドを実行できます。

    [forest@f095a749f891 ~][df]$ spark-shell --master local
    Warning: Ignoring non-spark config property: history.server.spnego.keytab.file=/etc/security/keytabs/spnego.service.keytab
    Warning: Ignoring non-spark config property: history.server.spnego.kerberos.principal=HTTP/_HOST@KR.DF.NAVERNCP.COM
    Setting default log level to "WARN".
    To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
    Spark context Web UI available at http://f095a749f891:4040
    Spark context available as 'sc' (master = local, app id = local-1608542188370).
    Spark session available as 'spark'.
    Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /___/ .__/\_,_/_/ /_/\_\   version 2.3.2.3.1.0.0-78
          /_/
    
    Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_112)
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> sc
    res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@b90c5a5
    

    spark-submitを使用して jarsファイルを提出できます。以下の例では「example.jar」という名前でビルドし、入力テキストファイルとして Spark2の README.mdファイルを適用しました。このアプリケーションのstdoutログで単語カウント(wordcount)の結果値を確認できます。

    [forest@090aea7192a2 ~][df]$ spark-submit --class com.naverncp.example.SparkWordCount \
    --master yarn --deploy-mode cluster --executor-memory 1g --name wordcount --conf "spark.app.id=wordcount" \
    example.jar file:///usr/hdp/current/spark2-client/README.md
    

    SparkWordCount.scalaコードは次の通りです。

    package com.naverncp.example
    
    import org.apache.spark.{SparkConf, SparkContext}
    
    object SparkWordCount {
      def main(args: Array[String]): Unit = {
        val sc = new SparkContext(new SparkConf().setAppName("WordCount Example"))
        val tokenized = sc.textFile(args(0)).flatMap(_.split(" "))
        val wordCounts = tokenized.map((_, 1)).reduceByKey(_ + _)
        println(wordCounts.collect().mkString(", "))
      }
    }
    
    

    3. アプリに対するクライアント構成

    1番~3番の手順は、マルチテナントクラスタに対するクライアント構成を確認する方法でした。このチャプターでは、HBASE-2.0.0HBASE-2.2.3KAFKA-2.4.0アプリに対するクライアントを構成する方法を基準に説明します。クライアントを構成する前に、環境変数を追加で設定します。

    Data Forestアプリに対するクライアント環境変数を自動で設定するには、get-app-env.shを実行します。

    $ pwd
    /home/forest
    $ mkdir ${DIR}
    $ sh /home/forest/get-app-env.sh ${APP_NAME} ~/${DIR}
    

    HBASE-2.0.0
    HBASE-2.0.0アプリに対するクライアントを構成する方法は、次の通りです。(アプリ名: secure-hbase)

    [forest@0242f09990ad ~][df]$ mkdir secure-hbase
    [forest@0242f09990ad ~][df]$ sh /home/forest/get-app-env.sh secure-hbase ~/secure-hbase
    [forest@0242f09990ad ~][df]$ sh /home/forest/get-app-env.sh secure-hbase ~/secure-hbase
    [/home/forest/get-app-env.sh] Apptype: HBASE-2.0.0
    [/home/forest/get-app-env.sh] Download install-client script for HBASE-2.0.0
    [/home/forest/get-app-env.sh] Install client on /home/forest/secure-hbase
    current secure-hbase: .yarn/services/secure-hbase/components/v1
    HBase-2.0.0 Client has been installed on /home/forest/secure-hbase
    ==============================================================================================
    kinit <user>
    export HBASE_CONF_DIR=/home/forest/secure-hbase
    hbase shell
    ==============================================================================================
    

    HBASE-2.2.3
    HBASE-2.2.3アプリに対するクライアントを構成する方法は、次の通りです。(アプリ名: unsecure-hbase)

    $ mkdir unsecure-hbase
    $ sh /home/forest/get-app-env.sh unsecure-hbase ~/unsecure-hbase
    

    KAFKA-2.4.0
    KAFKA-2.4.0アプリに対するクライアントを構成する方法は、次の通りです。(アプリ名: kafka)

    $ mkdir kafka
    $ sh /home/forest/get-app-env.sh kafka ~/kafka
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.