안녕하세요, 네이버 클라우드 플랫폼입니다.

이번 시간에는 Cloud Hadoop 1.2버전에 출시된 기능과 함께 Presto를 사용해 보겠습니다.

Cloud Hadoop 1.2 버전 주요 내용은 다음과 같습니다.

  • 외부 접속을 위한 Gateway용 노드를 Edge node로 따로 분리하여 서버 자원의 효율적인 사용과 보안 강화

자 그럼 Cloud Hadoop 1.2 버전과 presto를 확인해볼까요.

클러스터 생성

먼저 클러스터 설정에서 1.2 버전을 선택합니다.

스토리지 & 서버 설정 Step에서 엣지노드 서버 타입 및 개수가 표시됩니다.

Edge 노드 서버 타입을 선택합니다.

엣지노드는 최대 vCPU 8개, 메모리 64GB 까지 선택 가능합니다.

인증키 설정에서 기존 키를 사용하고 신규로 인증키를 생성합니다.

최종 확인을 하고 클러스터를 생성합니다.

설치가 완료되면 Status가 운영중으로 나옵니다.

이전 버전에서 엣지노드가 추가된 부분을 확인할 수 있습니다.

Edge node 접속

Edge node에 접속하기 위하여 ACG 규칙에 22번 포트를 추가합니다.

공인 IP에 접속하여 /etc/hosts 내용을 확인해보면 내부망에 엣지노드, 마스터노드, 데이터 노드의 호스트명 및 private ip를 확인할 수 있고, 엣지노드를 거쳐 마스터 노드 또는 데이터 노드에 접속할 수 있습니다.

Edge 노드에 Ambari 서버가 설치되어 있으므로 Edge 노드 public ip에 8080 포트로 Ambari UI에 접근할 수 있습니다.

클러스터 설정 백업

클러스터 관리 하위 메뉴에 클러스터 설정 백업이 추가되었습니다.

클러스터 설정 백업을 하게 되면 해당 클러스터에 연결된 Object Storage로 설정 CONFIG-BACKUP 폴더 아래 백업된 설정 파일이 저장됩니다.

Presto 사용하기

클러스터 생성 시 Presto로 선택하면 Edge 노드에 Presto Coordinator 가 기본적으로 설치되어 있습니다.

Edge 노드에 8285포트로 Presto Coordinator에 접속해 봅니다.

Hive는 기본 설치되어 있으므로 beeline 접속을 위해 ambari에서 HiveServer2 JDBC URL을 확인합니다.

beeline 명령어로 위 URL에 접속합니다.

beeline
beeline> !connect jdbc:hive2://dn-001-blog-hd:2181,m-002-blog-hd:2181,m-001-blog-hd:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2

간단한 테스트 용도의 데이터베이스를 하나 생성하고, 테이블을 하나 생성합니다.

CREATE EXTERNAL TABLE employee (
id String,
name String
) LOCATION 's3a://ncp-blog/sample/employee/';
show tables;

생성한 테이블에 샘플 데이터를 추가합니다.

INSERT INTO TABLE employee 
VALUES (1,'브라운'), (2,'코니');
select * from employee;

이제 Hive Metastore를 아래 URL을 참고하여 연동합니다.

URL : https://docs.ncloud.com/ko/hadoop/chadoop-4-8.html

Ambari에서 Presto에 connection.to.add 에 해당 내용을 입력하여 hive connector 연결을 합니다.

{“hive”:[“connector.name=hive-hadoop2”,
“hive.metastore.uri=thrift://m-001-blog-hd:9083,thrift://m-002-blog-hd:9083”,
“hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml”,
“hive.s3.use-instance-credentials=false”,
“hive.s3.aws-access-key=<ACCESS-KEY>”,
“hive.s3.aws-secret-key=<SECRET-KEY>”,
“hive.s3.endpoint=https://kr.object.ncloudstorage.com”]
}

presto 재시작이 되면 presto client로 edge 노드에 접속합니다. 이때 catalog를 hive로 설정하고 schema를 설정하여 위에서 hive로 생성한 테이블을 조회합니다.

/usr/lib/presto/bin/presto-cli --server <COORDINATOR-HOST-IP>:8285 --catalog hive --schema defaultshow tables;select * from employee;

Presto Coordinator에 접속하여 실행 이력을 확인해 봅니다.

글을 마무리하며

네이버 클라우드 플랫폼의 CloudHadoop을 사용해서 손쉽게 Hadoop 클러스터를 구축하였고, 1.2 버전에 출시된 Edge 노드를 통해 보안이 강화된 부분과 더불어 설정을 백업할 수 있었으며 Presto를 사용하여 hive에서 생성한 테이블을 조회해 보았습니다.

끝까지 읽어 주셔서 감사합니다.

--

--