Cloud Data Streaming Service로 Presto 연동
- 인쇄
- PDF
Cloud Data Streaming Service로 Presto 연동
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
네이버 클라우드 플랫폼 Cloud Hadoop과 Cloud Data Streaming Service(CDSS)를 연동하는 방법을 소개합니다.
이 가이드는 Presto 공식가이드에서 제공하는 Kafka Connector Tutorial 가이드를 기반으로 작성되었습니다.
사전 작업
- Cloud Hadoop 클러스터를 생성해 주십시오.
- Cloud Hadoop 클러스터 생성에 관한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
- Cloud Data Streaming Service를 생성해 주십시오.
- Cloud Data Streaming Service 생성에 관한 자세한 내용은 Cloud Data Streaming Service 사용 가이드를 참고해 주십시오.
- Cloud Data Streaming Service 사용하기 위해 VM 생성 및 세팅해 주십시오.
- VM 생성과 세팅에 관한 자세한 내용은 Cloud Data Streaming Service 사용 가이드를 참고해 주십시오.
- ACG를 설정해 주십시오.
- Cloud Hadoop에서 Cloud Data Streaming Service Broker 노드에 접속하기 위해서는 9092 포트를 허용해주어야 합니다.
- Cloud Data Streaming Service의 Broker 노드 ACG 접근 소스에 Cloud Hadoop의 Subnet 대역을 추가해 주십시오.
참고
Cloud Hadoop과 Cloud Data Streaming Service는 같은 VPC 내 통신이 가능한 동일 Subnet으로 생성하는 것을 권장합니다.
CDSS(Kafka)에 데이터 업로드
Cloud Data Streaming Service VM에서 Kafka를 실행해 주십시오.
[root@s17e27e0cf6c ~ ]# cd kafka_2.12-2.4.0
[root@s17e27e0cf6c kafka_2.12-2.4.0]# ./bin/kafka-server-start.sh -daemon config/server.properties
Kafka에 데이터를 다운로드해 주십시오.
[root@s17e27e0cf6c kafka_2.12-2.4.0]# curl -o kafka-tpch https://repo1.maven.org/maven2/de/softwareforge/kafka_tpch_0811/1.0/kafka_tpch_0811-1.0.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.6M 100 21.6M 0 0 7948k 0 0:00:02 0:00:02 --:--:-- 7947k
Kafka에 데이터를 업로드해 주십시오.
[root@s17e27e0cf6c kafka_2.12-2.4.0]# chmod 755 kafka-tpch
[root@s17e27e0cf6c kafka_2.12-2.4.0]# ./kafka-tpch load --brokers 172.16.2.6:9092 --prefix tpch. --tpch-type tiny
2022-02-07T10:30:09.426+0900 INFO main io.airlift.log.Logging Logging to stderr
2022-02-07T10:30:09.448+0900 INFO main de.softwareforge.kafka.LoadCommand Processing tables: [customer, orders, lineitem, part, partsupp, supplier, nation, region]
2022-02-07T10:30:09.859+0900 INFO pool-1-thread-1 de.softwareforge.kafka.LoadCommand Loading table 'customer' into topic 'tpch.customer'...
2022-02-07T10:30:09.859+0900 INFO pool-1-thread-2 de.softwareforge.kafka.LoadCommand Loading table 'orders' into topic 'tpch.orders'...
2022-02-07T10:30:09.859+0900 INFO pool-1-thread-3 de.softwareforge.kafka.LoadCommand Loading table 'lineitem' into topic 'tpch.lineitem'...
2022-02-07T10:30:09.860+0900 INFO pool-1-thread-4 de.softwareforge.kafka.LoadCommand Loading table 'part' into topic 'tpch.part'...
2022-02-07T10:30:09.860+0900 INFO pool-1-thread-5 de.softwareforge.kafka.LoadCommand Loading table 'partsupp' into topic 'tpch.partsupp'...
2022-02-07T10:30:09.860+0900 INFO pool-1-thread-6 de.softwareforge.kafka.LoadCommand Loading table 'supplier' into topic 'tpch.supplier'...
2022-02-07T10:30:09.860+0900 INFO pool-1-thread-7 de.softwareforge.kafka.LoadCommand Loading table 'nation' into topic 'tpch.nation'...
2022-02-07T10:30:09.865+0900 INFO pool-1-thread-8 de.softwareforge.kafka.LoadCommand Loading table 'region' into topic 'tpch.region'...
2022-02-07T10:30:13.079+0900 INFO pool-1-thread-7 de.softwareforge.kafka.LoadCommand Generated 25 rows for table 'nation'.
2022-02-07T10:30:13.175+0900 INFO pool-1-thread-6 de.softwareforge.kafka.LoadCommand Generated 100 rows for table 'supplier'.
2022-02-07T10:30:13.514+0900 INFO pool-1-thread-8 de.softwareforge.kafka.LoadCommand Generated 5 rows for table 'region'.
2022-02-07T10:30:13.711+0900 INFO pool-1-thread-1 de.softwareforge.kafka.LoadCommand Generated 1500 rows for table 'customer'.
2022-02-07T10:30:14.168+0900 INFO pool-1-thread-4 de.softwareforge.kafka.LoadCommand Generated 2000 rows for table 'part'.
2022-02-07T10:30:14.895+0900 INFO pool-1-thread-5 de.softwareforge.kafka.LoadCommand Generated 8000 rows for table 'partsupp'.
2022-02-07T10:30:15.078+0900 INFO pool-1-thread-2 de.softwareforge.kafka.LoadCommand Generated 15000 rows for table 'orders'.
2022-02-07T10:30:16.335+0900 INFO pool-1-thread-3 de.softwareforge.kafka.LoadCommand Generated 60175 rows for table 'lineitem'.
Presto에 connector 추가
Ambari UI에서 Presto > [CONFIGS] > Advanced connectors.properties에 connectors.to.add 값을 아래와 같이 추가한 후 [SAVE] 버튼을 클릭해 주십시오.
{"kafka":["connector.name=kafka",
"kafka.nodes=172.16.2.6:9092",
"kafka.table-names=tpch.customer,tpch.orders,tpch.lineitem,tpch.part,tpch.partsupp,tpch.supplier,tpch.nation,tpch.region",
"kafka.hide-internal-columns=false"] }
변경된 구성을 적용하기 위해 재시작이 필요합니다. 우측 상단의 [ACTIONS] > Restart All 을 클릭한 후, 팝업창의 [CONFIRM RESTART ALL] 버튼을 클릭해 주십시오.
Presto에서 테이블 조회
Cloud Hadoop 엣지 노드로 접속하여 Presto를 실행해 주십시오.
- catalog는 kafka, schema는 tpch로 설정해 주십시오.
[sshuser@e-001-example-pzt-hd ~]$ /usr/lib/presto/bin/presto-cli --server http://pub-210ab.hadoop.fin-ntruss.com:8285 --catalog kafka --schema tpch
presto:tpch> SHOW TABLES;
Table
----------
customer
lineitem
nation
orders
part
partsupp
region
supplier
(8 rows)
Query 20220128_064417_00003_96n53, FINISHED, 3 nodes
Splits: 36 total, 36 done (100.00%)
0:00 [8 rows, 166B] [57 rows/s, 1.16KB/s]
간단한 쿼리를 통해 내용을 확인합니다.
presto:tpch> DESCRIBE customer;
Column | Type | Extra | Comment
-------------------+---------+-------+------------------------------------------
_partition_id | bigint | | Partition Id
_partition_offset | bigint | | Offset for the message within the partiti
_message_corrupt | boolean | | Message data is corrupt
_message | varchar | | Message text
_message_length | bigint | | Total number of message bytes
_key_corrupt | boolean | | Key data is corrupt
_key | varchar | | Key text
_key_length | bigint | | Total number of key bytes
_timestamp | bigint | | Offset Timestamp
(9 rows)
presto:tpch> SELECT _message FROM customer LIMIT 5;
--------------------------------------------------------------------------------
{"rowNumber":1,"customerKey":1,"name":"Customer#000000001","address":"IVhzIApeR
{"rowNumber":4,"customerKey":4,"name":"Customer#000000004","address":"XxVSJsLAG
{"rowNumber":7,"customerKey":7,"name":"Customer#000000007","address":"TcGe5gaZN
{"rowNumber":10,"customerKey":10,"name":"Customer#000000010","address":"6LrEaV6
{"rowNumber":13,"customerKey":13,"name":"Customer#000000013","address":"nsXQu0o
(5 rows)
참고
Presto와 Kafka 활용에 대한 더 자세한 내용은 Kafka Connector Tutorial을 참고해 주십시오.
이 문서가 도움이 되었습니까?