본문 바로가기
BigData 기술/Spark

RDS -> Spark(AWS EMR) -> Neo4jDB

by 잇서니 2021. 8. 15.
반응형

 

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 (배포)

 

반응형

댓글