hadoop(13)
-
하둡 공부 - Yarn Scheduler
Scheduler 계층형 큐 부모 큐: 조직과 하위 조직의 자원을 관리 리프 큐: 부모 아래에서 동작하는 큐로 더 이상 자식 큐가 없는 마지막 큐 부모 큐는 직접 애플리케이션을 제출할 수 없으며, 오직 리프 큐만 애플리케이션을 제출함 ROOT는 어떤 조직에도 속하지 않으며, 클러스터 자체를 의미함 Capacity Scheduler 스케줄러 특징 특별한 설정을 하지 않을 경우 기본으로 Capacity Scheduler를 사용함 각 리프 큐의 내부 스케줄링은 FIFO 방식으로 자원을 할당함 다른 조직에서 애플리케이션을 제출한 후 제어권을 돌려주는 식으로 자원 공유 가능 잘 사용하지 않는(가장 작은 비율의) 큐에 더 높은 우선순위를 줌 탄력성을 보장하기 위해 설정은 되어 있지만 수요가 부족해 사용률이 저조한 ..
2019.01.24 -
하둡 공부 - Apache Hadoop 3.0.0
Apache Hadoop 3.0.0 Minimum required Java version increased from Java 7 to Java 8 Support for Erasure Coding(EC) in HDFS 오버헤드 비교 기존 방식에서 3개 Replication의 경우 200% 오버헤드를 초래함 1개의 Data Block을 분할시킨 여러 조각(Stripe)의 Data Block과 2개 이상의 Parity Block으로 구성 시 50% 오버헤드만 존재 Directory-level EC policies 표현: codec-num data blocks (Ndb)-num parity blocks (Npb)-cell size 최소 요구 구성 노드: Ndb + Npb 현재 6개의 Policy (RS: Ree..
2019.01.24 -
하둡 공부 - 관련 프로젝트
(Hortonworks, Hadoop Ecosystem) 프로젝트 설명 Apache Avro 언어 독립적 데이터 직렬화 Apache Parquet 컬럼 기반 저장 포맷 Apache Flume 이벤트 기반의 대용량 데이터를 하둡으로 수집 Apache Sqoop RDBMS로부터 데이터를 추출하고 하둡으로 보내 처리 Apache Pig 대용량 데이터셋을 더 높은 추상 수준으로 처리 Apache Hive 하둡 기반의 데이터 웨어하우징 프레임워크 Apache Crunch MapReduce 파이프라인을 작성하는 고수준 API Apache Spark 대용량 데이터 처리를 위한 클러스터 컴퓨팅 프레임워크 Apache HBase HDFS를 위한 컬럼 기반 분산 데이터베이스 Apache Zookeeper 분산 코디네이션 ..
2019.01.24 -
하둡 공부 - 하둡 관리
- HDFS 네임노드 디렉터리 구조 VERSION layoutVersion, namespaceID, clusterID, blockpoolID, cTime, storageType in_use.lock 네임노드가 저장소 디렉터리를 잠그는 데 사용하는 잠금 파일 fsimage 파일시스템 메타데이터(블록 매핑 정보)의 영구적인 체크포인트 네임노드에 장애가 발생하면 먼저 fsimage 를 메모리에 로드하고 edits파일에서 특정 지점 이후에 발생한 변경 내역들을 메모리에 반영하여 파일시스템의 메타데이터를 최신의 상태로 복원함 edits 클라이언트가 쓰기 동작을 하면 제일 먼저 내용이 기록됨 체크포인팅 작업 수동, 매 시간(기본값) 주기, edits 1백만개(기본값) 이상(매 분 확인)일 때 수행 도구 dfsadm..
2019.01.24 -
하둡 공부 - 하둡 클러스터 설치 및 고려사항
- 클러스터 준비 클러스터 규모 작은 규모(보통 10 노드)로 시작한 후 저장 및 계산 능력에 대한 요구가 증가함에 따라 클러스터 규모를 증가시킴 쉬운 방법으로는 얼마나 빨리 클러스터가 커질 것인가에 대해 저장소의 용량을 고려하여 산정하는 것이 유용함 증가되는 데이터량, 복제인수, 임시파일 및 로그 공간 등 - 하둡 설치 및 설정 설치 과정 바이너리 패키지 설치 하둡 경로 환경 변수 추가 ssh 구성 하둡 설정 파일 구성 HDFS 포맷 데몬 시작 HDFS 내 사용자 디렉터리 생성 메모리 힙 크기 각 데몬 당 기본으로 1000MB의 메모리를 할당함 네임노드의 경우 저장소 1 백만 블록 당 1,000MB 정도의 메모리가 필요함 ex) 24TB 디스크에서 200 노드, 블록 사이즈 128MB, 복제 수준 3인..
2019.01.24 -
하둡 공부 - 맵리듀스의 튜닝과 고급 기능
- 맵리듀스 튜닝 맵 측면에서 튜닝 속성 다수의 디스크 스필을 피하는 것(하나가 최선)이 최고의 성능을 내는 방법임 Map 출력 크기를 측정할 수 있다면 mapreduce.task.io.sort.* 속성을 적절히 설정하여 스필 횟수의 최소화 가능 리듀스 측면에서 튜닝 속성 중간 데이터 전체가 메모리에 존재할 때 최고의 성능을 얻을 수 있음 기본적으로 Reduce 함수에 모든 메모리를 예약함 - 카운터 Job에 대한 통계 정보를 수집하는 유용한 채널 태스크 카운터 각 Task가 실행될 때 해당 Task에 대한 정보를 수집한 후 Job의 모든 Task에 대한 값을 취합하여 최종 결과를 알려줌 사용자 정의 카운터 그룹과 카운터 이름으로 increment()를 수행하여 조건에 대한 카운트 수행 ex) repor..
2019.01.24