Dev 사용
    • PDF

    Dev 사용

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    Dev 앱은 Data Forest에서 제공하는 모든 서비스에 대한 클라이언트 역할을 합니다. Dev 앱에서는 Hadoop 명령어를 사용하거나 Spark Job을 YARN 클러스터에 제출할 수 있습니다.

    참고

    앱 생성에 대한 자세한 설명은 앱 생성 및 관리를 참조해 주십시오.

    Dev 앱 상세 정보 확인

    앱 생성이 완료되면 상세 정보를 확인할 수 있습니다. 앱 상세 정보의 StatusStable이면 앱이 정상적으로 구동된 것을 의미합니다.
    앱 상세 정보를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 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 컴포넌트 하나로 구성됩니다.
        • shell: 기본값으로 설정된 메모리와 CPU, 컨테이너 수는 최소 권장 값
    참고

    AppMaster UI에 로그인하고 각 컨테이너의 로그를 확인하는 방법은 Quick links 접속을 참조해 주십시오.

    <예시>
    셸 접속 화면은 다음과 같습니다.
    df-dev_004_vpc_ko

    Kerberos 인증

    Hadoop 명령어를 수행하거나 클러스터에 Spark Job을 제출하기 전 항상 Kerberos 인증을 진행해야 합니다. Kerberos 인증 수행 시 키탭 파일을 사용합니다. 단, Dev 앱에서는 사용자의 로컬 파일 시스템에 접근할 수 없기 때문에, 키탭을 HDFS에 업로드하여 Dev 앱에서 가져올 수 있도록 구성해야 합니다.

    키탭 다운로드

    키탭을 다운로드하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼의 콘솔에서 Services > Big Data & Analytics > Data Forest > Accounts 메뉴를 차례대로 클릭해 주십시오.
    2. 계정 목록에서 계정을 클릭하고 [클러스터 접속 정보] > 커버로스 키탭 다운로드를 클릭해 주십시오.
    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 dfs, hadoop fs, hadoop dfs 세 가지 형태로 실행이 가능합니다. 파일 시스템 작업을 수행하는 방법은 다음과 같습니다.

    [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-shell을 사용하여 클러스터에 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/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.