-
[GCP]Cloud DataProc클라우드/GCP 2021. 9. 27. 19:23
<구글 클라우드 플랫폼 뽀개기>p424를 참고한 내용입니다
Cloud Dataproc이란?
Apache Hadoop및 Spark 서비스로, 완전 관리형 클라우드 서비스라고 보면 된다. 환경 구축을 위해 오랜 시간이 걸렸던 작업이 몇 분, 몇 초만에 끝나게 된다. GCP에서 클러스터 배포, 로깅, 모니터링 서비스를 제공하며 언제든 클러스터를 만들고 리소스(VM, 디스크 크기, 노드 수 등)를 최적화/확장할 수 있다. 또한 마스터 노드를 사용해 클러스터에 문제가 생기더라도 다시 설정할 수 있다는 높은 가용성을 보장한다.
온프레미스 하둡/스파크 환경에서 GCP로 이전하는 방법 :
https://cloud.google.com/architecture/hadoop/hadoop-gcp-migration-overview
Google Cloud로 온프레미스 Hadoop 인프라 마이그레이션 | Hadoop를 GCP로 마이그레이션
Google Cloud로 온프레미스 Hadoop 워크로드 이동 안내
cloud.google.com
Hadoop
아파치 하둡은 분산환경의 병렬 처리 프레임워크다. 크게는 HDFS(Hadoop Distributed File System)와 맵리듀스(Map Reduce)로 이루어져있다. 여러대의 서버를 이용해 하나의 클러스터를 만들며, 이런 클러스터를 하나의 서버로 사용할 수 있는 컴퓨팅 환경을 제공한다.
작동방법 : 분석할 데이터를 HDFS에 저장해두고, HDFS에서 MapReduce 프로그램을 이용해 데이터를 처리한다. HDFS은 하나의 네임노드가 여러개의 데이터 노드를 관리하는 형태로 작동한다.
처리결과를 항상 파일 시스템에 유지한다.
Spark
분산기능을 제공하는 오픈소스 프레임워크다. 하둡과 달리 메모리에 저장하고 관리할 수 있는 인 메모리 캐싱기능을 제공함으로써 속도가 빠르고 머신러닝과 같은 반복적인 데이터 처리에 뛰어나다. Map Reduce, Spark Streaming, MLib(머신러닝), GraphX, Spark SQL등 다양한 클러스터 환경을 제공한다. 자바, 스칼라, R, 파이선으로 데이터를 변형하고 집계할 수 있다.
DataProc 구성요소
Anaconda, Hive WebHCat, Jupyter Notebook, Kerberos, Presto, Zeppelin
기존에 하둡 환경을 구축할 때 마스터 노드와 작업자 노드를 연결시키는 것부터가 매우 어려웠지만, 데이터프록을 사용하면 손 쉽게 이 둘을 구성할 수 있다.
_____________________실습______________________
BigData 아래 Dataproc이 있다.
API 실행하고 클러스터를 만든다. (Trial 버전에서는 CPU를 최대 8개까지 만들 수 있기 때문에 이를 유의하여 노드갯수를 설정한다) 에러없이 클러스터가 생성되고 프로비저닝이 끝나면 클러스터 목록에 해당 내역이 뜬다.



>>trial환경에서만 이렇게 설정. 유료서비스를 이용한다면 워커노드의 갯수와 CPU설정을 확장해도 될 듯.
*프로비저닝 : 인프라를 설정하는 프로세스 (provide 명사형)
그 다음 외부에서 해당 클러스터에 접속할 수 있도록 방화벽설정을 한다.
*ip4.me에 접속해서 나의 IP주소를 확인한 뒤 GCP - VPC 네트워크에서 방화벽을 만든다. 소스범위에 내 ip주소랑 tcp설정하기.

마스터 노드의 외부 IP복사 후 '해당 IP:9870'을 입력하면 하둡 NameNode Web이 나타난다. // '해당 IP:8088'을 입력하면 Yarn Resource Manager Web이 나타난다.

다시 Dataproc으로 가서 만들어준 cluster 선택하고 > VM인스턴스 > 마스터 선택 >이에 대한 외부 IP주소찾기
외부 IP주소:8088 or :9870으로 접속


PySpark로 WordCount 해보기p442
1. Storage > 브라우저 > 버킷생성 > 버킷만들기 (저장소 - nearline) > input.txt(워드카운트 할 대상-나는 한글입숨을 사용했다.)과 WordCount.py파일을 버킷에 업로드.
버킷만들기 기본저장소 클래스 -nearline

WordCount코드
from pyspark import SparkContext sc = SparkContext() #storage의 버킷이름 : dataproc-sample-cdy text_file = sc.textFile("gs://dataproc-sample-cdy/input.txt") counts = text_file.flatMap(lambda line : line.split(" ")) \ .map(lambda word : (word, 1)) \ .reduceByKey(lambda a, b: a + b) for data in counts.collect(): print(data)2. 데이터프록 - 작업(Jobs) > 작업제출 > 작업유형 : PySpark, 기본파이선 파일 : WordCount.py의 경로 지정 (ex. gs://dataproc-sample- ~~/WordCount.py or hdfs:// ~) > 작업 성공 시 더블클릭하면 각 단어의 갯수를 알 수 있다.

결과
반응형'클라우드 > GCP' 카테고리의 다른 글
[GCP] Cloud Dataflow (0) 2021.09.28 [GCP]StackDriver (0) 2021.09.28 [GCP]Cloud Pub/Sub (0) 2021.09.27 [GCP]Source Repositories (0) 2021.09.27 [GCP] Cloud Composer (0) 2021.09.27