Object Storage + Sub Account 연동
  • PDF

Object Storage + Sub Account 연동

  • PDF

네이버 클라우드 플랫폼의 Cloud Hadoop, Object Storage, Sub Account를 연동하여 사용하는 방법을 소개합니다.

Bigdata Service

  • Cloud Hadoop: Hadoop, HBase, Spark, Hive, Presto 등의 오픈소스 프레임워크를 손쉽게 구축할 수 있습니다.
    Cloud Hadoop에 대한 자세한 내용은 Cloud Hadoop 개요를 참고해 주십시오.

  • Object Storage: 안전한 보관이 필요하거나 대용량 데이터를 저장하는 데 활용할 수 있습니다.
    제공되는 API를 사용하여 서버 데이터의 백업 및 복구 용도로도 활용할 수 있습니다.
    Object Stroage에 대한 자세한 내용은 Object Storage 개요를 참고해 주십시오.

  • Sub Account: 사용자를 서브 계정으로 등록하고 특정 서비스에 대한 권한을 부여할 수 있습니다.
    등록된 내부 사용자는 권한을 부여 받은 서비스에 대해 주 계정과 동일하게 서비스를 이용할 수 있습니다.
    Sub Account에 대한 자세한 내용은 Sub Account 사용 가이드를 참고해 주십시오.

Hadoop + Object Storage + Sub Account 연동 및 사용

Sub Account 생성 및 정책 추가

사용자를 서브 계정으로 등록하고 특정 서비스에 대한 권한을 부여할 수 있습니다. 등록된 내부 사용자는 권한을 부여 받은 서비스에 대해 주 계정과 동일하게 서비스를 이용할 수 있습니다.

Sub Account에 대한 자세한 내용은 Sub Account 사용 가이드를 참고해 주십시오.

Sub Account 생성 및 정책을 추가하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 Sub Account 서비스를 생성해 주십시오.

    • Object Storage에 접근하기 위해서는 API Key를 사용해야 합니다. Sub Accounts 생성 시 접근 유형 항목의 API 접근을 선택해 주십시오.

    cloudhadoop-subaccoun-policy1_ko

  2. Sub Accounts 메뉴에서 생성한 Sub Accounts의 로그인 아이디를 클릭한 후 정책 탭에서 사용 정책을 추가해 주십시오.

    • Object Storage의 NCP_OBJECT_STORAGE_MANAGER 정책을 추가해 주십시오.
    • ACG 변경 관리를 위한 NCP_VPC_SERVER_MANAGER 정책을 추가해 주십시오.
    • Cloud Hadoop의 NCP_VPC_CLOUD_HADOOP_MANAGER 정책을 추가해 주십시오.
      cloudhadoop-subaccoun-policy2_ko
  3. [Access Key] 탭에서 Object Storage에 접근하기 위한 API 인증키를 [추가] 한 후 확인해 주십시오.
    cloudhadoop-subaccoun-policy3_ko

  4. Sub Account > Dashboard 에서 서브계정 로그인 페이지 접속키를 설정해 주십시오.
    cloudhadoop-subaccoun-key_policy_ko

  5. 서브계정 로그인 페이지의 URL로 접속한 후 다음과 같이 서브 계정으로 로그인해 주십시오.

  • 서브 계정 아이디는 서브 계정 생성 시 설정한 로그인 아이디 입니다.
  • 비밀번호는 서브 계정 생성 시 설정한 로그인 비밀번호 입니다.
    cloudhadoop-subaccoun-policy4_ko
  • 해당 계정에 설정된 정책으로 허가된 서비스들만 사용할 수 있습니다.
    hadoop-chadoop-use-ex3_07_ko

Object Storage 버킷 생성

Object Storage에서 데이터를 저장할 ncp-bigdata 버킷을 생성해 주십시오. 생성된 버킷은 Bucket Management 메뉴에서 확인할 수 있습니다.
버킷 생성에 대한 자세한 내용은 Object Storage 사용 가이드를 참고해 주십시오.

Cloud Hadoop 클러스터 생성

Cloud Hadoop 클러스터를 생성해 주십시오.
Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작을 참고해 주십시오.

Object Storage에 샘플 데이터 업로드

  1. 여기에서 데이터 세트를 다운로드해 주십시오.

    • 다운로드한 파일은 압축을 해제해 주십시오.
  2. Object Storage > Bucket Management에서 ncp-bigdata 버킷을 클릭한 후 압축이 해제된 파일을 업로드해 주십시오.

cloudhadoop-objectstorage-buket1_ko

데이터 조회

Ambari, Hue, Zeppelin 등 Web UI에서 샘플 데이터를 조회할 수 있습니다.
Web UI 접속 방법은 서비스별 UI 접속 및 패스워드 설정을 참고해 주십시오.

  1. Cloud Hadoop 클러스터 생성이 완료되면 Ambari, Hue, Zeppelin에 접속하기 위한 포트를 ACG에 추가해 주십시오.

  2. Hue에 접속(8081 port)하여 Hive 쿼리로 mart 데이터베이스를 생성해 주십시오.

CREATE DATABASE mart;

hadoop-use-ex-hivequery_ko

  1. 다음과 같이 orders2 테이블을 생성해 주십시오.
CREATE EXTERNAL TABLE `orders2` (
        `order_id` BIGINT,
        `order_number` BIGINT,
        `days_since_prior_order` DOUBLE

)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
location 's3a://ncp-bigdata/';

hadoop-use-ex-hivetable_ko

  1. orders2 테이블의 데이터를 조회해 주십시오.
SELECT * FROM orders2;

hadoop-use-ex3_4-2_ko

  1. Zeppelin(9996 port)에 접속해 주십시오.

  2. Notebook > [Create new note] 를 클릭한 후, Zeppelin Notebook을 새로 생성해 주십시오.
    hadoop-use-ex3_4-3_ko

  3. Hive 메타스토어에 등록된 orders2 테이블을 조회해 주십시오.

%jdbc(hive)
SELECT order_number, AVG(days_since_prior_order)
FROM mart.orders2
WHERE 1=1
AND order_number IS NOT NULL
GROUP BY order_number
ORDER BY order_number
  • Default Interpreter는 jdbc로 지정합니다.
  • 예시로 업로드된 csv 파일을 대상으로 단순 분석을 진행합니다.
  • 주문 횟수가 많아질수록 재주문까지 걸리는 기간이 짧아지는진다는 가정을 하고 확인하겠습니다.

orders2 테이블

  • order_id: 주문 번호
  • order_number: 주문 횟수
  • days_since_prior_order: 마지막 주문 이후 기간

orders2 테이블에서 days_since_prior_order는 마지막 주문 후 얼마나 지났는지 최대 30일까지 표시한 컬럼이고 order_number는 해당 유저의 주문 횟수입니다.

참고

Instacart에서 제공하는 데이터를 참고하여 예제를 위해서 만든 가상의 데이터입니다.

  1. Cloud Hadoop을 사용하여 Hue에서 생성한 Hive 테이블(orders2)을 Zeppelin에서 조회한 후 다음과 같이 차트로 시각화해 주십시오.
    hadoop-use-ex3_4-4_ko

차트를 보면 주문 횟수가 많은 고객은 다음 재주문까지 걸리는 일수가 짧은 것으로 해석할 수 있습니다.

참고
  • Object Storage를 사용하면 HDFS 대비 성능은 떨어지나 클러스터를 종료한 후에도 필요할 경우 다시 생성하여 동일한 데이터를 조회할 수 있는 장점이 있습니다.
  • Hive 메타스토어를 별도로 분리하지 않았기 때문에 신규 생성 시 Hive DDL을 실행해야 하며 Zeppelin Notebook도 신규로 가져와(import)야 합니다.

이 글이 도움이 되었나요?