반응형
0. 네트워크 구성 (VPC 생성)
- 탄력적 ip 생성 (public IP)
- VPC 생성
- Subnet (Public, Private) 생성
- EMR EC2 보안그룹에서 인바운드 규칙 편집 (노트북에서 EMR EC2에 접속하기 위해 필요함)
1. EMR 구성
- 소프트웨어 구성
hadoop, spark, zeppeplin, hue, oozie
- 멀티마스터 구성
멀티마스터 체크 시 알아서 zookeeper 구성될 것임
- AWS Glue 데이터 카탈로그 설정
Hive metastore 기반
- 인스턴스 구성
마스터(NN, RM, ZK, zeppelin), 코어(DN, NM), 태스크(NM)
코어 최소 1개는 필요함. yarn 띄울 때 필요한 라이브러리를 DN에 저장해야 하기 때문임
온디맨드 유형 / 스팟 유형
- 소프트웨어 설정 편집
hdfs-site.xml, core-site.xml 등 설정
- Cluster scaling
- 부트스트랩
EMR 클러스터 구동할 때 필요한 초기작업 실행 (커널튜닝, 포트충돌 방지 등등)
쉘스크립트를 수행하거나 airflow를 구동하는 등의 방식으로 부트스트랩을 함
- 키페어
EMR EC2 접속 시 키페어를 사용함
2. Spark DataFrame from RDS
- 성능 튜닝
fetchsize 등 DF Option 설정
numPartitions 등으로 source DB 부하 안 되게끔 설정
- 중복성 체크
source db의 primary key 기준 등으로 DF Option 설정
한 번 가져올 때는 중복 문제가 안되는데 여러 번 가져올 때 중복이 발생할 수 있음 => timestamp 등의 값을 활용해야 함
- DB 테이블 연동 (USER, PLACE 테이블)
url, user, password, db, table
primary key, partition 등 설정
3 Spark DataFrame to Neo4jDB
- 도커로 neo4jDB 구성
- Driver library 준비
neo4j driver, oracle driver s3에 올려놓고 spark-sumbit jar 옵션에 추가
혹은 서버에 (/usr/lib/spark/jars) 드라이버 옮겨놓기
- spark 코드 작성
여러 개 테이블 조인 가능
neo4j relation 생성
5. spark submit (배포)
반응형
'BigData 기술 > Spark' 카테고리의 다른 글
[spark] spark에서 phoenix 테이블 읽고쓰기 (scala) (8) | 2021.01.14 |
---|---|
[spark] spark streaming + kafka (547) | 2020.08.10 |
SPARK에서 저장소(HDFS, Hive 등)에 접근하는 방식 (745) | 2020.07.31 |
[Spark] Spark 예제 - 데이터 로딩, 조인, 필터링, 정렬 (4) | 2020.07.10 |
[Spark] Spark 예제 - 고객별 구매횟수, 구매금액 등 구해보기 (count, sum, sort) (4) | 2020.07.06 |
댓글