Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

SK ICT Tech Summit 2019_BIG DATA-11번가_DP_v1.2.pdf

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio

Eche un vistazo a continuación

1 de 34 Anuncio
Anuncio

Más Contenido Relacionado

Más reciente (20)

Anuncio

SK ICT Tech Summit 2019_BIG DATA-11번가_DP_v1.2.pdf

  1. 1. • 여정의 시작 • 인프라 편 • 로그 편 • 대용량 데이터 편 • 서비스 편 • 마치며
  2. 2. 전득진 (Jeon, DeukJin) dj.jeon@sk.com Data Platform 팀 추천 담당 / Search Center 주식회사 11번가 • 18년차 Software Engineer • ’18.5 : SK Planet • ‘18.9.1 : 11번가
  3. 3. 2018년 6월 19일/20일 기사
  4. 4. ‘18.8월 DI TF 결성 • Mission - 11번가 Data Infra를 구축하라! • Full Time 3명 / Part Time 3명 • 10월 SK Planet 판교 사옥, DIC팀과 동거 시작 신속 & 효율적 SKP DIC Clone 11st DIC
  5. 5. Mission • SKP DIC 현황 파악 및 Data Infra 구축 계획 수립 :: 첨부자료 - 우주왕복선 Endeavour 호 (’노력’). 1992년 5월 ~. 2011년 6월.
  6. 6. Mission • 구성원들이 구비한 경력과 기술에 따라 3가 지 업무로 분할 • 인프라 구축 • 데이터 입수 파이프라인 구축 • 대용량 데이터 마이그레이션 데이터 마이그레이션 (F/T 1) •Hive Table / HDFS •RDBMS Table / Hive Meta •NoSQL DB 데이터 입수 (P/T 3) •User Log •System Log •DB Data 인프라 (F/T 1) •Hardware •Software - Hadoop eco system (F/T 1)
  7. 7. 데이터 인프라 구축 • DI TF 결성 : 2018년 8월. Full Time 3명, Part Time 3명 • DIC 구축 : 12월~2019년 2월. 하둡 인프라 + 데이터 수집 인프라 + 데이터 분석/관리 SW (In-House 개발 S/W) • 데이터 마이그레이션 : 3월. 10 PB • 서비스 마이그레이션 : 4월. 추천 플랫폼, BI 시스템, Log2.0, Ad Platform, Search Platform, Web Scouter, … • Yarn 클러스터 메모리 증설 : 5월 • SKP DIC 사용계약 2개월 조기 종료 : 6월 à 4월 9월 10월 11월 12월 ’19년 1월 2월 3월 4월 5월 DI TF 결성 - DIC 구축 계획, 규모산정, 설계 DIC 구축 (인프라 + 입수 파이프 라인) 데이터 마이그레이션 서비스 마이그레이션 Yarn 메모리 증설 : 4월 13(증설 요청) 5/14~5/28 (증설 완료) SKP DIC 사용계약 조기 종료 : 2개월. 6월 à 4월 추천, BI, Ad, Log2.0 SKP DIC 사용계약 메모리 증설 SKP DIC 분석, 규모산정, 설계, Pilot 구성 하둡Infra + 데이터 SW + 데이터 수집 인프라 Full Mig. 계약 조기종료 메모리 구매 Incremental Mig.
  8. 8. Sources 수집 가공 (분석) 저장 User Server DB Sentinel Rake Mirrormaker Kafka Collector Oggre 제공 DW Hive OLAP Druid NoSQL HBase Data Service BI System Reco Seller Analytics ICT Family Yarn-RT Yarn-DI Yarn-mini Query / ML / DL HDFS-DIC HDFS-DSC Batch RealTime Cache Redis Search Query Engine Ad A/B Test ICT Family Logagent Hardware • Architecture
  9. 9. Hardware • Total 1K 노드 • HDFS : 3 cluster • DI : 공용 저장소 35 PB • MSM (Hbase) : 추천 전용 저장소 • PIE : 실험 클러스터 • Yarn : 4 cluster 21K vcore / 125 TB vmem • DI : 공용 연산노드 • RT : 실시간 스트림 수집 노드 • ETL : 배치 잡 노드 수행 • mini : DB Import 용 Sqoop 수행 노드 • PIE : 실험 클러스터 SKP • Total 400 노드 • HDFS : 3 cluster • DI : 공용 저장소 15 PB • DSC (Hbase) : 추천 전용 저장소 • Yarn : 4 cluster 11K vcore / 85 TB vmem • DI : 공용 연산 노드 • RT : 실시간 + 배치 잡 수행 노드 • mini : DB Import 용 Sqoop 수행 노드 11st Ingestion Processing Storage Sentinel Rake Kafka Mirrormaker Kafka Collector Oggre Serving DW Hive OLAP Druid NoSQL HBase Yarn-RT Yarn-DI Yarn-mini Query / ML / DL HDFS-DIC HDFS-DSC Batch RealTime Cache Redis Query /Storage Engine Logagent Diet. Diet. 노드 = 1000 ea : 400 ea 가용량 = 35PB : 15PB 사용량 = 18PB : 9PB
  10. 10. Hardware Yarn Cluster 메모리 증설 • Yarn Cluster 메모리 부족 이슈 : 4월 중순 (issue-rasing). ’19. 5월 말 (증설 완료) • 현상 : Batch Job 및 Spark ML Job 들이 실패함 • 원인 분석 • 워크로드 대비 부족한 자원 • SKP에서 11번가 BM이 리소스의 70% 소비하였으나, 실제 구성된 리소스는 20%, 50% 이하 • 분사에 따른 전기간 소급 적용 배치 증가 + Data 량 증가에 따른 쿼리 워크로드 + 신규 Machine Learning Job 추가 Yarn Cluster SKP 11st (as-was) 11st (as-is) DI 89 TB 16 TB 58.5 TB RT 35 TB 16 TB 24.8 TB mini 1.2 TB 1.75 TB 1.75 TB Yarn Queue Calibration (allocation) • Fair Scheduler
  11. 11. Software SK Planet Data Product 관리도구 • Ganglia / Zabbix / ELK / Grafana • Medic / Scrooge / Probe / CMS • Insomnia / Collector UI / Timebomb • Hue 분석도구 • Galleon / Barrel / Boat(GPU) / Cuckoo • R Studio / Jupyter / Zeppelin 입수도구 • Sentinel / Rake / Logagent / Collector • Oggre / Sqoop / Oozie / Pig • Kafka / Mirrormaker Processing 쿼리엔진 • Hive 1.1 eda-oa / eda-svdi / etl / qc • Hive 2.1 eda-oa / eda-svdi / etl / qc / LLAP In-Memory 쿼리엔진 • Presto / Impala • Spark 1.6~2.2 Yarn • DI / RT / ETL / mini (MR / TEZ) Storage HDFS • DI • MSM Hbase / Phoenix • MSM Kudu • kudu 1.6 DB • MongoDB / Mysql / Oracle(OM/BI) Cache • Redis Etc Middleware • Nginx, Tomcat, RabbitMQ Security • Lightsaber / Querycache / Sentrybox • Sentry, Hive UDF (암복호화) • KMS, IDMS, ActiveDirectory 11st Data Product 관리도구 • Ganglia / Zabbix / Grafana • New Medic / Scrooge / Probe / CMS • Insomnia / Collector UI / Timebomb • Thanos / Thanos Frozen • Hue / Airflow 분석도구 • Galleon / Barrel / Cuckoo • R Studio / Jupyter / Zeppelin / Superset 입수도구 • Sentinel / Rake / Logagent / Collector • Oggre / Sqoop / Oozie • Kafka / Mirrormaker / Flume Processing 쿼리엔진 • Hive 2.1 eda-oa / eda-svdi / etl / qc / LLAP In-Memory 쿼리엔진 • Presto • Spark 2.2 Yarn • DI / RT / mini (MR / TEZ) Storage HDFS • DI • DSC(=MSM) Hbase / Phoenix • DSC(=MSM) DB • MongoDB / Mysql / Oracle(OM/BI) Cache • Redis Etc Middleware • Nginx, Tomcat, RabbitMQ Security • Lightsaber / Querycache / Sentrybox • Sentry, Hive UDF (암복호화) • KMS, IDMS, ActiveDirectory
  12. 12. Software • 방대한 솔루션 • 솔루션 체인 • 순환 의존성 QC ßà SentryBox CMS Lock ßà Hive Medic ßà Sentinel
  13. 13. 데이터 입수 파이프라인 구축 • Overview Server DB LogAgent Oracle Golden Gate 보라매 IDC 일산 IDC OMDB OMDB Relay MirrorMaker Collector Oggre Sqoop BIDB rake web/was rake client Data Infra Cluster User
  14. 14. 데이터 입수 파이프라인 구축 • Log / DB 데이터 수집 현황 데이터유형 수집데이터 수집대상 수집도구 일 수집량 User Log - log2.0 - pc web - modile web - app (ios, android) rake client (in-house) - android, ios, javascript Rake WEB/WAS : 40ea (26/14) 1.4 T Server Log - access log - service log - web server - application server Logagent (in-house) : 450ea kafka : 13ea(보라매 3/ Alp3 / 일산7) Collector : 6ea 29 T DB Data - 업무 데이터 - Main DB - BI DB - AD DB Oggre (in-house) : 2ea Oozie : 2ea Yarn-mini : 5ea 7 T Oggre:209건 Sqoop:245건
  15. 15. 데이터 입수 파이프라인 구축 - User Log • App에서 로그 수집 서버 양측에 전송하는 방법 (X) • 로그 수집 서버 한 곳에서 트래픽을 복제하여 전송하는 방법 (O) • Nginx :: post_action : Traffic mirroring • Origin : SKP 1. 11st 로그 입수 파이프라인을 구축 2. 신규 앱 배포 : 사용자 로그를 전송하는 End Point을 변경 (SKP à 11st) • 로그를 양사 DIC로 송출 (Origin : SKP) • 로그입수량을 대조 3. 로그를 양사 DIC로 송출 (Origin : SKP) • 로그입수량을 대조 • 11st 내 로그입수 후 처리 로직을 완성 (마트생성 Workflow)
  16. 16. 데이터 입수 파이프라인 구축 - User Log • 구버전 앱 : SKP로 송출 • 신버전 앱 : 11st로 송출 • post_action • Origin : SKP (11st로 트래픽 복제) • Issue : 1% 트래픽 유실 User Log 1% SKP (커머스 IDC) Data Infra Cluster Collector rake was 11st (일산 IDC) Data Infra Cluster Collector rake web/was post_action (1% 유실) old rake client 데이터 복제 new rake client User Log 99%
  17. 17. 데이터 입수 파이프라인 구축 - User Log • post_action • Origin : 11st (SKP로 트래픽 복제) User Log 99% SKP (커머스 IDC) Data Infra Cluster Collector rake was 11st (일산 IDC) Data Infra Cluster Collector rake web/was post_action old rake client 데이터 복제 new rake client User Log 1%
  18. 18. 데이터 입수 파이프라인 구축 - User Log • 구버전 앱 트래픽 1% : 강제 업데이트 • post_action • Traffic mirroring 제거 • SKP로 로그 송출 중단 User Log 99.9% SKP (커머스 IDC) Data Infra Cluster Collector rake was 11st (일산 IDC) Data Infra Cluster Collector rake web/was old rake client 데이터 복제 new rake client User Log 0.1% post_action 제거
  19. 19. 데이터 입수 파이프라인 구축 - System Log • Logagent • 보라매IDC, 일산IDC 양분 • Mirrormaker • 보라매 Kafka à MirrorMaker à 일산 Kafka à Collector à HDFS Server LogAgent 보라매 IDC 일산 IDC Data Platform MirrorMaker Collector
  20. 20. Migration Plan 마이그레이션 대상 선별 - 이관 대상 : 계정/Hive DB/HDFS 목록 효율화 대상 선정 - Hive DB별 삭제 대상/ 보관주기 대상/ 유지 대상 목록 재암호화 대상 점검 마이그레이션 시나리오 수립 - 마이그레이션 프로세스 공지 및 설명회 마이그레이션 수행
  21. 21. Migration Scenario
  22. 22. Migration Scenario
  23. 23. Migration • 마이그레이션 대상 식별 : 전체 33PB • 데이터 Owner 대상 설명회 수행 => 전수 조사 / 사용 여부 조사 • 적극적인 참여로 • 11st 데이터만 16PB --> 10PB (40% 효율화 성공) 30PB 16PB 10PB
  24. 24. Migration • 마이그레이션 대상별 진행방식 : • HDFS + Hive : inter cluster distcp • Druid • Mysql : dump & import • MongoDB : dump & import • Hbase : raw data 기반으로 재 적재 • Redis : Hbase 기반으로 재 적재 • HDFS만 10PB : cluster간 Network Bandwidth = 40G • 이론적 복제 시간 : 432TB(1day) * 80%(buffer) = 350TB • 주요 업무시간 제외한 나머지 12시간 복제 시 소요 기간 3333TB(Usable) / 175TB(12시간) = 19일 + 5일(buffer) • 실제 복제 기간 : 240TB(1day) = 약 14일 소요 전용선 연결 구조 SKP 11st
  25. 25. Migration • 재 암호화 : SKP decrypt : flat data à distcp : 11st encrypt • 고려사항 및 어려웠던 점 • One mapper per file : 하나의 파일에 쓰기 작업 매퍼가 두개 이상 접근하면 오류 발생 • distcp process중 source file이나 destination의 file 변경 일어나면 fail 발생할 수 있음 • 복제 시 block size 보존을 권장, version이 다른 경우 목적지에서 distcp를 수행함 • 11st 클러스터에서 복사하는 경우SKP의 workload를 제거할 수 있으나 (pull방식) audit 로그를 남기기 위하여 SKP 클러스터에서 distcp를 수행함 (push방식) • Incremental distcp X : 너무 많은 tiny job overhead à 디렉토리 단위별 단순 distcp 수행 • 네트웍 대역폭을 고려한 설정 : bandwidth 10MB/s per mapper : 전체 mapper 500 • 수십만개 파일변환으로 인한 distcp 재 작업 : non orc à orc • Permission Error (during Query Execution) • 모든 파티션 파일에 Owner (UID) / Group (GID) 를 일치 1 복호화 2 테이블 단위 파티션 복사 3 암호화 SKP 11st
  26. 26. Migration • 데이터 거버넌스 - Thanos Project (저장소 효율화) • ‘19년 9월 사용률 - 12.8/14.83 PB : 86%, 3월 9.6PB 시작 : 64% • 월 0.3PB 증가 à 2달 후 90% 도달 “When I’m done, half of DATA will still exist. Perfectly balanced, as all things should be.”
  27. 27. Migration • 데이터 거버넌스 - Thanos Project (저장소 효율화) • 데이터 압축 / 보관주기 관리 / 중단 서비스 데이터 폐기 • ‘19년 9월 사용률 (12.8/14.83 PB : 86%, 3월 9.6PB : 64% 시작) As-Was (9월초) → DLM 적용 (10월) → DLM Frozen 적용 (11월 예정) 12.8 PB 사용률 85.62% 9 PB 사용률 60% : 삭제 용량 3.8 PB 이상 (9/26 기준) 8 PB 사용률 54% : 삭제용량 1PB (추정) 2020년도 저장소 증설 0 = 약 6억 절약 (30대) •2020년 10월 예상 사이즈 (월 증가량 0.3 PB) DLM 적용 후 : 9 + 3.6 = 12.6 PB (85%) DLM Frozen 적용 후 : 8 + 3.6 = 11.6 PB (78.2%) Compression Retention Cycle (purge) Freezing
  28. 28. Migration ‘19 10월 access로그 22% 정보계(BI) 17% 광고 16% 추천 16% 검색 11% 로그2.0 8% 운영계(OM) 3% 기타 7% 구분 TB size access로그 2037.54 정보계(BI) 1580.56 광고 1521.75 추천 1500.71 검색 996.60 로그2.0 699.57 운영계 (OM) 229.92 기타 687.92 합계 9254.57 사용 비율 9.25 / 14.83 PB (62.3%)
  29. 29. Asset 보라매 IDC 일산 IDC 364ea 86ea Size Used Available Used% 14.83 PB 9.25 PB 4.85 PB 62.3% 보라매 IDC kafka 일산 IDC Kafka 53 topic (3 broker) 63 topic (7 broker) hourly daily weekly monthly total 30 380 13 13 436 • 스토리지 사이즈 • 테이블 : 4,317 ea • 배치잡 : 436 ea • Logagent : 450 ea • Kafka Topic : 111 ea
  30. 30. 서비스 연동 • BI 리포트 • Data Source • BIDB • Hive : Log2.0 + 검색 AccessLog • Solution • MicroStrategy + Tableau • Batch Job • ETL DAG => Oozie Sqoop + Oozie Hive + Oozie Spark ETL DAG Job1 ODS Job2 DW Job3 Data Mart Job4 BI Report
  31. 31. 서비스 연동 • 추천 서비스 • Data Source • HDFS + Hive • Hbase + Phoenix : 자체 적재 • Redis : 자체 적재 • Realtime Job : Flink + Spark Streaming • Batch Job : Spark ML + Hive • Platform • 추천 엔진 • 추천 서버(서빙) • LogHub Service Log 적재 추천용 데이터 ETL OMDB BIDB 추천 엔진 Service Repository (ES / MySQL) Cache / Realtime repository App Push 추천 Server
  32. 32. 새로운 여정 2020
  33. 33. Special Thanks • 11번가 • System Engineering 팀 / Service Engineering 팀 • Platform Engineering 팀 / IT 팀 • SK Planet • Data Infrastructure팀

×