본문 바로가기

전체 글

[하둡 완벽 가이드] Chapter 9. 맵리듀스 기능 이번 Chapter는 아래와 같은 맵리듀스 고급 기능에 대해 소개하는 절이다. 카운터정렬조인사이드 데이터 분배맵리듀스 라이브러리 클래스그렇다면.... 지금까지 우리가 알아본 맵리듀스의 기본 기능에는 무엇이 있으며,,,왜 이것만으로는 부족하고 고급 기능이 필요한지 고민해보자 ... !!! 맵리듀스 기본 기능HDFS에 데이터를 블록 단위로 나눠서 여러 노드에 저장. (data locality)Map : key-value형태로 데이터를 변환 후 필터링/매핑/전처리 수행Shuffle & Sort : 동일한 키를 가진 데이터끼리 한 Reduce 노드로 전달 (키 기준 오름차순 정렬)Reduce : 동일 키를 가진 값들을 집계/합산/평균/통계 계산최종 결과를 HDFS에 저장-----------------------.. 더보기
[하둡 완벽 가이드] Chapter 8. 맵리듀스 타입과 포맷 맵 리듀스 모델에서 데이터를 어떻게 처리하는지 살펴보자. 맵리듀스의 동작 과정이 생각나지 않는다면, 아래의 포스팅을 한 번 다시 보고 오도록 하자.. [하둡 완벽 가이드] chapter2. 맵리듀스맵리듀스란? 데이터 처리를 위한 프로그래밍 모델 병행성을 고려하여 설계되었으며, 대용량 데이터셋에서 유용함. 자바,루비,파이썬등으로 구동 가능 예제에서 다룰 기상 데이터셋의 특성에 대co-yong.tistory.com 하둡 맵리듀스의 함수 형식은 아래와 같다.map : (K1, V1) -> list(K2, V2)combiner : (K2, list(V2)) -> list(K2, V2)partition : (K2,V2) -> integerreduce: (K2, list(V2)) -> list(K3, V3)위.. 더보기
[하둡 완벽 가이드] ~ Chapter 3 Study Chapter2awk란?텍스트 파일을 행 단위로 처리하며 패턴 매칭 및 필드 기반 분석'가공에 사용awk 'pattern { action }' filepattern : 조건 / action : 패턴 일치시 실행할 코드 블록 / file : 처리할 텍스트 파일 data center 간의 고가용성 보장 어떻게? (Hadoop 기준)NameNode의 단일 장애 지점 문제 해결Active-Standby 구조 (Zookeeper(ZKFC)를 통해 장애 감지시 자동 전환)*HDFS HA 1분정도 뜨는데 걸림. zookeeper가 20초 정도 지나면 time-out 처리. PB급 복구 40초 (20초 zookeeper포함)데이터 복제 (Rack Awareness) Rack Awareness란?HDFS와 같은 분산 시.. 더보기
[하둡 완벽 가이드] Chapter 4. YARN YARN이란? Yet Another Resource Negotiator 즉, 직역하자면 또 다른 자원 협상가로 기존에는 MapReduce가 자원관리부터 스케쥴링까지 모두 했지만,시간이 지남에 따라 "새로운 자원 관리자가 필요하겠는걸?" 이라는 생각과 함께 YARN을 만들게 되었다. 그럼 기존 MapReduce로 모든걸 하기엔 어떤 한계가 있었는지, YARN을 사용하면 뭐가 좋은지 알아보자! 기존에는 맵리듀스 내에 잡트래커가 태스크 스케쥴링 및 전체 잡을 조율하고 태스크트래커가 각 태스크를 실행 및 모니터링하며 상황을 잡트래커에 보내는 방식으로 두 데몬을 사용해 실행 과정을 제어했다. YARN에서는 기존 잡 트래커가 하는 일을 리소스 매니저와 애플리케이션 마스터를 분리하는 구조로 확장성과 HA에서의 문제.. 더보기
[하둡 완벽 가이드] Chapter3. 하둡 분산 파일시스템 단일 물리 머신에 모든 데이터를 저장하기에는 어려움이 있다. 그렇기에 등장한것이 바로 네트워크로 연결된 여러 머신에 나눠서 저장하고, 관리하는 분산파일시스템이다.오늘은 그중에서도 하둡이 제공하는 분산파일시스템인 HDFS에 대해 알아보자. HDFS : Haddop Distributed FileSystem HDFS는 어떻게 설계되었을까? TB~FB까지의 데이터도 저장할 수 있다스트리밍 방식의 데이터 접근 (최초 데이터를 읽기 위한 접근 시간보다 전체 데이터를 읽는 시간을 더 중요시)범용 하드웨어응답 시간을 희생하여 높은 데이터 처리량을 제공수많은 작은 파일보다, 소수의 큰 파일을 선호. (네임노드가 메타데이터를 메모리에서 관리)단일 writer 사용 및 임의의 위치에서 수정 불가. (append 가능) .. 더보기
[하둡 완벽 가이드] chapter2. 맵리듀스 맵리듀스란? 데이터 처리를 위한 프로그래밍 모델 병행성을 고려하여 설계되었으며, 대용량 데이터셋에서 유용함. 자바,루비,파이썬등으로 구동 가능 예제에서 다룰 기상 데이터셋의 특성에 대해 먼저 알아보자.수집 : 지구 전지역에서 매시간 기상 센서를 통해 대량의 로그 데이터를 수집특성 : semi-structed (반구조적 = 반정형) & *record-oriented (레코드 지향적) -> 맵리듀스를 통한 데이터 분석에 적합함.출처 : 국립기후자료센터 (NCDC)파일 구분 : 날짜 , 기상관측소 *레코드 지향적이라는것은 하나의 행 단위로 저장/처리 함을 의미하며, 반대되는 개념으로 Column-oriented로 parquet가 있다. 책에서 이 데이터에 대해 설명하는 문장 중 아래와 같은 문장이 있는데, 머.. 더보기
ML-분류 (Classification) 6. ML - 분류 (Classification)범주형 종속 변수를 예측하기 위해 사용하며, 다중 클래스 분류라고도 부른다. (클래스 개수가 2라면 이진 분류라고도 함)레이블이 있는 학습 데이터를 통해 학습 후, 평가 데이터나 새로운 데이터에 대해 예측을 수행분류 모델로는 Logistic Regression, KNN, Decision Tree, SVM 등이 있다.평가 지표기본적으로는 정확도 (Accuracy)가 사용되며 이는 학습/평가 데이터로 성능 평가하기 좋지만, 데이터가 불균형한 경우 설명력 불충분함.혼동 행렬 (Confusion Matrix) : 예측과 실제 값을 비교하여 TP/FP/TN/FN을 시각적으로 표현지표명수식설명정확도 (Accuracy)Accuracy = (TP + TN) / (TP +.. 더보기
[하둡 완벽 가이드] Chapter 1. 하둡과의 만남 디스크에서 데이터를 읽는데 시간을 줄일 수 있는 가장 확실한 방법은 무엇일까? 바로 여러개의 디스크에서 동시에 데이터를 읽는 것이다. 과거에는 데이터셋의 크기가 크지 않기에, 단지 읽는 속도를 빠르게 하기 위해 디스크를 100개를 쓰며,각 디스크 별로 1/100의 공간을 쓴다면 이는 낭비이다. 그러나 현대에는 1TB의 데이터셋 100개가 존재하고,이는 각 디스크의 공간을 모두 사용하며 나눠 저장하고 공유할 수 있다면 충분히 의미가 있다. 자 그렇다면...여러 개의 디스크에 데이터를 병렬로 쓰거나 읽으려면 어떤 문제를 고려해야 할까?하드웨어 장애 (사용하는 하드웨어 수 증가 -> 어디선가 장애가 발생할 확률 증가)여러곳에 복사본을 보관하여 데이터 손실을 방지하는 RAID 방식과 달리,HDFS는 조금 .. 더보기