‘18.8월 DI TF 결성
• Mission - 11번가 Data Infra를 구축하라!
• Full Time 3명 / Part Time 3명
• 10월 SK Planet 판교 사옥, DIC팀과 동거 시작
신속 & 효율적
SKP DIC
Clone
11st DIC
Mission
• SKP DIC 현황 파악 및 Data Infra 구축 계획 수립
:: 첨부자료 - 우주왕복선 Endeavour 호 (’노력’). 1992년 5월 ~. 2011년 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)
데이터 인프라 구축
• 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.
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
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
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
Software
• 방대한 솔루션
• 솔루션 체인
• 순환 의존성
QC ßà SentryBox
CMS Lock ßà Hive
Medic ßà Sentinel
데이터 입수 파이프라인 구축
• 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
데이터 입수 파이프라인 구축
• 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건
데이터 입수 파이프라인 구축 - 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)
데이터 입수 파이프라인 구축 - 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%
데이터 입수 파이프라인 구축 - 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%
데이터 입수 파이프라인 구축 - 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 제거
데이터 입수 파이프라인 구축 - System Log
• Logagent
• 보라매IDC, 일산IDC 양분
• Mirrormaker
• 보라매 Kafka à MirrorMaker à 일산 Kafka à Collector à HDFS
Server LogAgent
보라매 IDC
일산 IDC
Data
Platform
MirrorMaker
Collector
Migration Plan
마이그레이션 대상 선별
- 이관 대상 : 계정/Hive DB/HDFS 목록
효율화 대상 선정
- Hive DB별 삭제 대상/ 보관주기 대상/ 유지 대상 목록
재암호화 대상 점검
마이그레이션 시나리오 수립
- 마이그레이션 프로세스 공지 및 설명회
마이그레이션 수행
Migration
• 마이그레이션 대상 식별 : 전체 33PB
• 데이터 Owner 대상 설명회 수행 => 전수 조사 / 사용 여부 조사
• 적극적인 참여로
• 11st 데이터만 16PB --> 10PB (40% 효율화 성공)
30PB
16PB 10PB
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
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
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.”
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