Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Dev 사용

Prev Next

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

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

참고

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

Dev 앱 상세 정보 확인

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

  1. 네이버 클라우드 플랫폼 콘솔의 VPC 환경에서 Menu > Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
  2. 좌측의 Data Forest > Apps 메뉴를 클릭해 주십시오.
  3. 계정을 선택해 주십시오.
  4. 상세 정보를 확인할 앱을 클릭해 주십시오.
  5. 앱 상세 정보를 확인해 주십시오.
    df-dev_2-1_updated_ko
    • Quick links: 다음과 같은 Quick links 주소로 접속할 수 있습니다.
      • supervisor: 컨테이너의 앱 프로세스를 모니터링하고 관리할 수 있는 supervisor URL
      • shell: 웹 브라우저를 통해 GNU/Linux 터미널(TTY)에 접속할 수 있는 URL
    • 컴포넌트: DEV-1.0.0 타입은 shell 컴포넌트 하나로 구성됩니다.
      • shell: 기본값으로 설정된 메모리와 CPU, 컨테이너 수는 최소 권장 값

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

Kerberos 인증

Hadoop 명령어를 수행하거나 클러스터에 Spark Job을 제출하기 전 항상 Kerberos 인증을 진행해야 합니다.
사용자 경로에 있는 키탭으로 Kerberos 인증을 수행해 주십시오.

$ 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 test01.service.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/app -kt test01.service.keytab
$ klist 
Ticket cache: FILE:/tmp/krb5cc_20184
Default principal: test01/app@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/nch/current/hadoop-client
$ echo $SPARK_HOME
/usr/nch/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.ch.naverncp.com ~][df]$ hadoop fs -ls
Found 30 items
…
-rw-r--r--   3 test01 services        215 2021-04-09 11:35 test01.service.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.ch.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.ch.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/nch/current/spark2-client/README.md")
rdd1: org.apache.spark.rdd.RDD[String] = file:///usr/nch/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://dataforest/user/test01/result")
  ...
org.apache.spark.rdd.RDD.saveAsTextFile(RDD.scala:1478)
  ... 49 elided

Hadoop 명령어를 사용하여 결과를 확인하는 방법은 다음과 같습니다.

[test01@shell-0.dev.test01.kr.ch.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의 경우 생성한 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