Development/Hadoop(17)
-
하둡 공부 - 관련 프로젝트
(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 -
하둡 공부 - MapReduce 실행
- 클러스터에서 실행하기 Job 패키징 Job JAR 파일을 생성하고 전체 클러스터에 배포되어야 함 라이브러리 클래스 경로 설정 Job 구동하기 Job이 완료되면 카운터의 통계 정보 출력 Map input records: 분석한 레코드 수 HDFS: Number of bytes read: HDFS에서 읽은 파일 크기 Launched map tasks: 분할 수 - 웹UI Resource Manager 페이지 클러스터에서 현재 실행 중인 애플리케이션의 개수, 클러스터 가용 자원의 수량, 노드 매니저 정보 등 MapReduce Job 페이지 Job의 진행 상황을 계속 확인할 수 있음 대기 중(Pending), 실행 중(Running), 실행 성공(Complete), 실패(Killed) 등 - 결과 얻기 Jo..
2019.01.24 -
하둡 공부 - MapReduce 작동 방법
- MapReduce Job 실행 상세 ResourceManager(RM), NodeManager(NM), Application Master(AM) 잡 제출 1단계 Job을 제출하면 waitForCompletion() 메서드가 1초에 한 번씩 변경 내역이 있으면 콘솔로 보여줌 2단계 RM에 새로운 애플리케이션 ID를 요청함 3단계 Job 실행에 필요한 JAR 파일, 환경 설정 파일, 계산된 입력 스플릿 등의 Job 리소스를 공유 파일시스템에 있는 해당 Job ID 이름의 디렉터리에 복사 4단계 RM에게 Job을 제출함 잡 초기화 5a, 5b 단계 스케줄러는 컨테이너를 하나 할당하고, RM은 AM 프로세스를 시작함 6단계 AM을 실행하고, 이후 각 Task로부터 진행 및 종료 보고를 수신 7단계 Clien..
2019.01.24