본문 바로가기

전체 글

[하둡 완벽 가이드] 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는 조금 .. 더보기
ML - 회귀(Regression) ML 지도 학습 중 회귀(Regression)에 대해 알아보자. ML을 위해 샘플 데이터를 많이 사용하는데, 이때 load_dataset에서 사용되는 data의 타입 Bunch에 대해 알아보자.Dictionary와 유사한 형태로, key들의 종류와 그 의미는 아래와 같다.data: 분석이나 모델 학습에 쓰이는 메인 입력 데이터 (보통 변수 X 사용)target: 지도 학습 등에서 정답값(라벨) (보통 변수 y 사용)feature_names: 입력 데이터 각 컬럼의 의미나 이름target_names: 정답값의 실제 클래스 이름 (예: 'setosa', 'versicolor', 'virginica')DESCR: 데이터셋에 대한 상세 설명, 출처, 특성 등 읽기 자료filename: 원본 데이터 파일의 위치(.. 더보기
Machine Learning 개요 및 scikit-learn 기존에는 직접 처리 로직을 모두 작성하지만, ML은 input/output을 통해 데이터를 학습하여 로직을 자체 구현지도 학습 vs 비지도 학습지도 학습 : 레이블(정답지)에 가까워 지도록 조정하는 학습추론 -> 예측 -> 손실(차이) == 정답(레이블) ? -> 조정(학습)Classification (분류), Regression (회귀)비지도 학습 : 결과가 없는 데이터를 이용해 주어진 데이터에 내재된 패턴/특성/구조를 찾아서 학습Clustering (군집)강화 학습 : 에이전트의 동작이 적절한지에 대한 피드백을 반영하며 학습준지도 학습 : 소량의 라벨 데이터와 대량의 비라벨 데이터를 함께 사용해 학습자가지도 학습 : 데이터 자체에서 라벨을 생성해 대량의 데이터를 효율적으로 학습언어모델 / 이미지 생성.. 더보기
Pandas 기본 다차원 데이터 집합을 의미하는 panel data의 앞글자를 따서 pandas 데이터가 됨.파일 입출력pd.read_excel(sheet_name = None), pd.to_excel(index=False)sheet_name에 기본값 0은 첫 시트만 가져오지만, None 사용시 전체 시트를 df dictionary 형태로 가져옴저장시에는 index=True이면 새로 열이 추가되기에 필요없아면 False로 설정해줄것.pd.read_csv(encoding = 'utf-8'), pd.to_csv()encoding에 주의. utf-8, cp949 (euc-kr) 중 하나를 보통 사용csv : comma seperated values*euc-kr은 cp949에 포함관계임.Series와 DataFrameSeries.. 더보기