Dev を使用する
    • PDF

    Dev を使用する

    • PDF

    Article Summary

    VPC環境で利用できます。

    Devアプリは、Data Forestで提供するすべてのサービスに対するクライアントの役割を果たします。Devアプリでは、Hadoopコマンドを使用したり、Spark Jobを YARNクラスタに提出できます。

    参考

    アプリの作成についての詳しい説明は、アプリの作成と管理をご参照ください。

    Devアプリの詳細情報の確認

    アプリの作成が完了すると、詳細情報を確認できます。アプリの詳細情報の StatusStable であれば、アプリが正常に起動されたことを意味します。
    アプリの詳細情報を確認する方法は、次の通りです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Data Forest > Apps メニューをクリックします。
    3. アカウントを選択します。
    4. 詳細情報を確認するアプリをクリックします。
    5. アプリの詳細情報を確認します。
      df-dev_2-1_ko
      • Quick links : 以下のような Quick Linksアドレスでアクセスできます。
        • AppMaster : コンテナログを確認できる URL。アプリ作成時、すべてのアプリは YARNキューに提出され、YARNは各アプリの詳細情報を確認できる Web UIを提供
        • supervisor : コンテナのアプリプロセスをモニタリングし、管理できる supervisor URL
        • shell : ウェブブラウザを介して GNU/Linuxターミナル(TTY)に接続できる URL
      • コンポーネント : DEV-1.0.0タイプは、 shell コンポーネント1つで構成されます。
        • shell : デフォルト値に設定されたメモリと CPU、コンテナ数は最小推奨値
    参考

    AppMaster UIにログインして各コンテナのログを確認する方法については、Quick Linksアクセスをご参照ください。

    例)
    シェルアクセス画面は、次の通りです。
    df-dev_004_vpc_ko

    Kerberos認証

    Hadoopコマンドを実行したり、クラスタに Spark Jobを提出したりする前には、常に Kerberos認証を行う必要があります。Kerberos認証を行う際はキータブファイルを使用します。ただし、Devアプリではユーザーのローカルファイルシステムにアクセスできないため、キータブを HDFSにアップロードして Devアプリから取得できるように構成する必要があります。

    キータブのダウンロード

    キータブをダウンロードする方法は、次の通りです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest > Accounts メニューを順にクリックします。
    2. アカウントリストに移動アカウントを選択して [クラスタのアクセス情報] > Kerberosキータブのダウンロード をクリックします。
    3. キータブのダウンロード画面が表示されたら、 [ダウンロード] ボタンをクリックします。
    4. ダウンロードしたファイルを大事に保存します。

    HDFSにキータップをアップロード

    HDFSにキータブをアップロードする方法は、次の通りです。

    1. koya名前空間のファイルブラウザで、/user/{username}/パスの下にキータブ df.{username}.keytabをアップロードします。
      df-dev_5-1_vpc_ko

    2. HDFSにあるキータブをダウンロードし、そのキータブで Kerberos認証を行います。

      • $PASSWORDにはアカウントの作成時に設定したパスワードを stringで入力
      • 記号がある場合は、単一引用符 ' ' で囲むこと
      $ curl -s -L -u test01:$PASSWORD -o df.test01.keytab "https://sso.kr.df.naverncp.com/gateway/koya-auth-basic/webhdfs/v1/user/test01/df.test01.keytab?op=OPEN"
      $ ls -al
      total 20
      drwxr-s--- 4 test01 hadoop  138 Dec 16 17:57 .
      drwxr-s--- 4 test01 hadoop   74 Dec 16 17:44 ..
      -rw-r--r-- 1 test01 hadoop  231 Dec 16 17:36 .bashrc
      -rw------- 1 test01 hadoop  302 Dec 16 17:36 container_tokens
      -rw-r--r-- 1 test01 hadoop  245 Dec 16 17:57 df.test01.keytab
      lrwxrwxrwx 1 test01 hadoop  101 Dec 16 17:36 gotty -> /data1/hadoop/yarn/local/usercache/test01/appcache/application_1607671243914_0024/filecache/10/gotty
      -rwx------ 1 test01 hadoop 6634 Dec 16 17:36 launch_container.sh
      drwxr-S--- 3 test01 hadoop   19 Dec 16 17:53 .pki
      drwxr-s--- 2 test01 hadoop    6 Dec 16 17:36 tmp
      $ kinit test01 -kt df.test01.keytab
      $ klist 
      Ticket cache: FILE:/tmp/krb5cc_20184
      Default principal: test01@KR.DF.NAVERNCP.COM
      
      Valid starting       Expires              Service principal
      12/16/2020 17:39:57  12/17/2020 17:39:56  krbtgt/KR.DF.NAVERNCP.COM@KR.DF.NAVERNCP.COM
              renew until 12/23/2020 17:39:56
      
    注意

    kinit: Password incorrect while getting initial credentialsは、与えられたキータブがアカウントと合わない場合に発生するエラーメッセージです。

    環境変数の確認

    Data Forestクラスタのサービスを使用する際に必要な環境変数は、既に Devアプリに指定されています。
    環境変数を確認する方法は、次の通りです。

    $ echo $HADOOP_HOME
    /usr/hdp/current/hadoop-client
    $ echo $SPARK_HOME
    /usr/hdp/current/spark2-client
    

    Hadoop dfsコマンドの使用

    dfsコマンドは、ファイルシステムシェルを実行するコマンドです。ファイルシステムシェルには、HDFSとローカル FS、WebHDFS、S3 FSなどのように、Hadoopがサポートするその他のファイルシステムと直接相互作用する様々なシェルと類似したコマンドが含まれています。
    dfsは、hdfs dfshadoop fshadoop dfsの3つの形で実行できます。ファイルシステムタスクを実行する方法は、次の通りです。

    [test01@shell-0.dev.test01.kr.df.naverncp.com ~][df]$ hadoop fs -ls
    Found 30 items
    …
    -rw-r--r--   3 test01 services        215 2021-04-09 11:35 df.test01.keytab
    drwx------   - test01 services          0 2021-05-11 12:21 grafana
    drwx------   - test01 services          0 2021-05-07 14:55 hue
    …
    
    参考

    ファイルシステムシェルについての詳しい説明は、こちらをご参照ください。

    Spark-shellを使用して Spark Jobを提出

    Devアプリは Data Forestに対するクライアント設定が完了した状態であるため、spark-shell、PySparkといった REPLを実行できます。

    spark-submitを使用してクラスタに Spark Jobを提出する方法は、次の通りです。

    [test01@shell-0.dev.test01.kr.df.naverncp.com ~][df]$ spark-shell
    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://shell-0.dev.test01.kr.df.naverncp.com:4040
    Spark context available as 'sc' (master = yarn, app id = application_1619078733441_0566).
    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> val rdd1 = sc.textFile("file:///usr/hdp/current/spark2-client/README.md")
    rdd1: org.apache.spark.rdd.RDD[String] = file:///usr/hdp/current/spark2-client/README.md MapPartitionsRDD[1] at textFile at <console>:24
    
    scala> val rdd2 = rdd1.flatMap(_.split(" "))
    rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at flatMap at <console>:25
    
    scala> val rdd3= rdd2.map((_, 1))
    rdd3: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] at map at <console>:25
    
    scala> val rdd4 = rdd3.reduceByKey(_+_)
    rdd4: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[4] at reduceByKey at <console>:25
    
    scala> rdd4.take(10)
    res0: Array[(String, Int)] = Array((package,1), (this,1), (Version"](http://spark.apache.org/docs/ja/latest/building-spark.html#specifying-the-hadoop-version),1), (Because,1), (Python,2), (page](http://spark.apache.org/documentation.html).,1), (cluster.,1), ([run,1), (its,1), (YARN,,1))
    
    scala> rdd4.saveAsTextFile("hdfs://koya/user/test01/result")
      ...
    org.apache.spark.rdd.RDD.saveAsTextFile(RDD.scala:1478)
      ... 49 elided
    

    Hadoopコマンドを使用して結果を確認する方法は、次の通りです。

    [test01@shell-0.dev.test01.kr.df.naverncp.com ~][df]$ hadoop fs -ls /user/test01/result
    Found 3 items
    -rw-------   3 test01 services          0 2021-04-21 14:06 /user/test01/result/_SUCCESS
    -rw-------   3 test01 services        886 2021-04-21 14:06 /user/test01/result/part-00000.gz
    -rw-------   3 test01 services        888 2021-04-21 14:06 /user/test01/result/part-00001.gz
    

    HiveServer2に接続

    HS2に接続する方法は、次の通りです。
    以下のコマンド形式で公共 HS2および個別 HS2に接続できます。

    $ beeline -u {JDBC connection string} -n {username} -p {password} 
    
    参考
    • 公共 HS2の場合、JDBC connection stringはアプリ詳細の Quick links > 接続情報の詳細を見るで HiveServer2(Batch)/(Interactive)タイプに合わせてアドレスを入力してください。
    • 個別 HS2の場合、作成した HS2アプリ詳細の Quick links > Connection Stringを参照して入力してください。

    アプリに対するクライアント環境の構成

    アプリに対するクライアント環境を構成する方法は、次の通りです。

    1. secure-hbase というディレクトリを作成します。
    2. 以下の例のように sh /home/forest/get-app-env.sh {사용자의 hbase 앱 이름} {디렉터리 이름}を入力します。
      $ mkdir secure-hbase  
      $ sh /home/forest/get-app-env.sh hbase ~/secure-hbase  
      [/home/forest/get-app-env.sh] Apptype: HBASE-2.2.3  
      [/home/forest/get-app-env.sh] Download install-client script for HBASE-2.2.3  
      [/home/forest/get-app-env.sh] Install client on /data10/hadoop/yarn/local/usercache/test01/appcache/application_1619078733441_0563/container_e84_1619078733441_0563_01_000002/secure-hbase  
      current hbase: .yarn/services/hbase/components/v1  
      --2021-05-20 14:37:51--  http://dist.kr.df.naverncp.com/repos/release/hbase/hbase-2.2.3-client-bin.tar.gz  
      Resolving dist.kr.df.naverncp.com (dist.kr.df.naverncp.com)... 10.213.208.69  
      Connecting to dist.kr.df.naverncp.com (dist.kr.df.naverncp.com)|10.213.208.69|:80... connected.  
      HTTP request sent, awaiting response... 200 OK  
      Length: 233293221 (222M) [application/octet-stream]  
      Saving to: ‘/data10/hadoop/yarn/local/usercache/test01/appcache/application_1619078733441_0563/container_e84_1619078733441_0563_01_000002/secure-hbase/hbase-2.2.3-client-bin.tar.gz’  
      
      100%[=============================================================================================>] 233,293,221  390MB/s   in 0.6s  
      
      2021-05-20 14:37:51 (390 MB/s) - ‘/data10/hadoop/yarn/local/usercache/test01/appcache/application_1619078733441_0563/container_e84_1619078733441_0563_01_000002/secure-hbase/hbase-2.2.3-client-bin.tar.gz’ saved [233293221/233293221]  
      
      HBase-2.2.3 Client has been installed on /data10/hadoop/yarn/local/usercache/test01/appcache/application_1619078733441_0563/container_e84_1619078733441_0563_01_000002/secure-hbase/hbase-2.2.3-client  
      ==============================================================================================  
      export HBASE_HOME=/data10/hadoop/yarn/local/usercache/test01/appcache/application_1619078733441_0563/container_e84_1619078733441_0563_01_000002/secure-hbase/hbase-2.2.3-client  
      $HBASE_HOME/bin/hbase shell  
      
      Use "help" to get list of supported commands.  
      Use "exit" to quit this interactive shell.  
      For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell  
      Version 2.2.3, rUnknown, Wed Jan 29 22:11:21 KST 2020  
      Took 0.0025 seconds                                                                                                                                                                         
      hbase(main):001:0>  
      hbase(main):002:0* version  
      2.2.3, rUnknown, Wed Jan 29 22:11:21 KST 2020  
      Took 0.0007 seconds                                                                                                                                                                         
      hbase(main):003:0> status  
      1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load  
      Took 0.5934 seconds                       
      

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

    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.