일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- T-검정
- 하둡
- 데이터프레임
- dict
- 병렬 쿼리 시스템
- DataFrame
- 유사도
- 가설검정
- merge
- 교차검증
- join
- distribution
- 다중공선성
- 분산분석
- cross validation
- hive
- DBSCAN
- Sawzall
- pca
- p-value
- 딕셔너리
- 결정계수
- SPLIT
- list
- pig
- Python
- SQL on 하둡
- k-means
- 밀도기반
- 분포
- Today
- Total
one of a kind scene
4-1 데이터 처리 프로세스_대용량의 비정형 데이터 처리방법 본문
대용량의 비정형 데이터 처리방법
1. 대용량 로그 데이터 수집
① 로그(log)
• 로그(log)는 기업에서 발생하는 대표적인 비정형 데이터로, 과거에는 문제 상황 보존을 위해 사용했고
• 최근에는 마케팅/영업 전략 수립을 위한 사용자의 행태 분석 등에 사용
• 용량이 방대하기 때문에 이를 분석하기 위해서는 고성능과 확장성을 가진 시스템이 필요
• 로그 데이터 수집 시스템의 예 : 아파치 Flume_NG, 페이스북 Scribe, 아파치 Chukwa 등
② 대용량 비정형 데이터 수집 시스템의 특징
• 초고속 수집 성능과 확장성
• 데이터 전송 보장(안전성) 매커니즘
- 성능과 안전성이라는 트레이드 오프(Trade-Off)가 존재
• 다양한 수집과 저장 플러그인
- 다양한 비정형 데이터를 몇가지 설정만으로도 수집이 가능하도록 내장 플러그인 제공
• 인터페이스 상속을 통한 애플리케이션 기능 확장
2. 대규모 분산 병렬 처리
① 하둡(Hadoop)
• 맵리듀스(MapReduce)시스템과 분산 파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
• 여러 대의 컴퓨터를 마치 하나의 시스템인 것처럼 묶어 분산 환경에서 빅데이터를 저장 및 처리할 수 있도록 하는 자바 기반의 오픈소스 프레임워크
• 하둡은 비공유(Shared Nothing) 분산 아키텍처 : 비공유니깐 서버 추가하는 만큼 연산기능 및 저장기능이 향상됨
② 하둡의 특징
• 선형적인 성능과 용량 확장
- 이론적으로 서버의 대수 제한 없고, 통상적으로 최소 클러스터 대수는 5대
- 비공유 분산 아키텍쳐 시스템이기 때문에 서버르르 추가하면 연산기능과 저장기능이 서버의 대수에 비례해 증가
• 고장 감내성
- HDFS에 저장되는 데이터는 3중복제 되어 서로 다른 물리서버에 저장되어 데이터 유실을 방지할 수 있음
- 특정 태스크에서 장애가 생기면, 시스템이 자동으로 감지해 장애가 발생한 특정 테스크만 다른서버에서 재실행 가능
• 핵심 비즈니스 로직에 집중
- 하둡의 맵리듀스는 맵과 리듀스라는 2개의 함수만 구현하면서 동작
- 맵리듀스라는 데이터 처리•분석 방식만 이해하고 비즈니스 목적에 맞게 간단한 코드만 작성하면, 데이터가 그고 작음에 신경 쓰지 않아도 된다.
• 풍부한 에코시스템 형성
3. 하둡 에코시스템
- Zookeeper : 서버들간의 상호 조정이 필요한 다양한 서비스 제공
- Oozie : 워크플로우 및 코디네이터 시스템
- Hbase : HDFS기반의 컬럼 NoSQL 데이터베이스
- Pig : 복잡한 MapReduce 프로그래밍을 대체할 Pig Latin 언어 제공
- Hive : 하둡 기반의 데이터웨어하우스, 테이블단위의 데이터 저장과 HiveQl 쿼리를 지원
- Mahout : 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈 소스 라이브러리
- Hcatalog : 하둡 기반의 테이블 및 스토리지 관리
- Avro : RPC(Remote Procedure Call)과 데이터 직렬화를 지원하는 프레임워크
- Chukwa : 분산 환경에서 생성되는 데이터를 HDFS에 안정적으로 저장시키는 플랫폼
- Flume : 소스서버에 에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜렉터로 구성
- Scribe : 페이스북에서 개발된 데이터 수집 플랫폼, Chukwa와 달리 중앙집중서버로 전송
- Sqoop : 대용량 데이터 전송 솔루션, HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속하게 전송할 수 있는 방법 제공
- Hiho : Sqoop과 같은 대용량 데이터 전송 솔루션으로 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스 지원
- YARN은 맵리듀스 단점을 극복하기 위해 하둡 2.0부터 제공되는 프로젝트로 분산 애플리케이션을 구현하기 위한 자원 관리 프레임워크를 지원
<표 : 하둡 에코시스템의 구성>
구분 | 주요기술 |
데이터 수집 | Flume-NG, kafka |
데이터 연동 | Sqoop |
분산 데이터베이스 | Hbase |
대용량 SQL질의 | Hive, Pig |
실시간 SQL질의 | Impala, Tajo |
워크플로 관리 | Oozie, Azkaban |
4. 데이터 연동 : Sqoop
• 비정형 데이터로 분석을 수행하기 위해서는 기업 내의 정형 데이터와 분석하고자 하는 비정형 데이터를 연동하는 것이 필요
• 하지만, 데이터베이스를 대상으로 맵리듀스와 같은 대규모 분산 병렬 처리를 하는 것은 심한 부하를 야기
• 따라서, 데이터베이스의 데이터를 하둡으로 복사한 후 하둡에서 대규모 분산처리를 수행
• 그 결과로 생성된 작은 요약 데이터 셋을 다시 데이터 베이스에 기록하는 방식으로 작업을 수행
• 이때, 데이터 연동 기능 수행하는 대표적인 오픈 소스 솔루션이 스쿱(Sqoop)
• 스쿱(Sqoop)은 MySQL, PostgreSQL, 사이베이스 등 JDBC를 지원하는 대부분의 관계형 데이터베이스와의 연동을 지원
• Import 명령어를 이용하여 RDBMS → HDFS로 데이터를 옮김
• Export 명령어를 이용하여 HDFS → RDBMS로 데이터를 옮김
5. 대용량 질의 기술(병렬 쿼리 시스템)
• 하둡은 코딩이 필요하기 때문에 분석가에게는 어려움
• 따라서, 사용자에게 친숙한 SQL이라는 질의 기술을 이용하여 하둡에 저장된 데이터를 쉽게처리하고 분석할 수 있도록 해주는 하이브(Hive)가 등장
• Sawzall, Hive, Pig 가 대용량 질의 기술(병렬 쿼리 시스템)에 해당 / SQL on 하둡 기술과는 구분됨!!!!
• But, 하둡과 하이브는 대용량 데이터를 배치 처리하는데 최적화 되어있음
• 실시간 조회 및 처리에 대한 제약을 극복하기 위해 실시간 SQL질의 분석 기술인 SQL on 하둡이 등장
6. SQL on 하둡 기술의 종류
• 아파치 드릴(Drill)
• 아파치 스팅거(Stinger) : 호튼웍스에서 개발
• 샤크(Shark)
• 아파치 타조(Tajo) : 고려대 대학원에서 시작된 프로젝트
• 임팔라(Impala) : 클라우데라(Cloudera)에서 개발
• 호크(HAWQ)
• 프레스토 : 페이스북에서 자체적으로 개발
'ADP > 이론' 카테고리의 다른 글
4-2 데이터 처리 기술_분산 데이터 저장 기술 part2_데이터베이스 클러스터 (0) | 2019.11.22 |
---|---|
4-2 데이터 처리 기술_분산 데이터 저장 기술 part1_분산 파일 시스템 (0) | 2019.11.21 |
4-1 데이터 처리 프로세스_데이터 통합 및 연계 기법 (0) | 2019.11.17 |
4-1 데이터 처리 프로세스_EAI(Enterprise Application Integration) (0) | 2019.11.17 |
4-1 데이터 처리 프로세스_CDC(Change Data Capture) (0) | 2019.11.17 |