본문 바로가기
반응형

BigData 기술/Hadoop11

Hadoop 클러스터 구축 과정 1. Zookeeper 설치 1) 패키지 설치 zookeeper, zookeeper-server 2) 설정파일 배포 - zoo.cfg (myid 설정) 2. Hadoop 설치 1) 네임노드 - 패키지 설치 (hadoop, hadoop-hdfs-namenode) - 네임노드용 디렉토리 생성(dfs_namenode_name_dir) 2) YARN Resource manager - 패키지 설치(hadoop, hadoop-yarn-resourcemanager) 3) Journal Node - 패키지 설치(hadoop-hdfs-journalnode) - 저널노드용 디렉토리 생성 (dfs_journalnode_edits_dir) 4) ZKFC - 패키지 설치(hadoop-hdfs-zkfc) 5) Hadoop 설치 .. 2021. 4. 1.
DataNode failed volumes 원인 및 해결법 hadoop 2.7.4 테스트 클러스터 운영 중에 2대의 데이터노드가 shutdown 됐던 적이 있었습니다. 디스크 고장으로 인해 데이터노드 volume에 문제가 생긴 것이 원인이었습니다. 원인 파악 1. 데이터노드 로그(/var/log/hadoop-hdfs/hadoop-hdfs-datanode-mnode4.dev.com.log)를 확인해보니 데이터노드의 volume(/data1/hdfs/data)에 문제가 생겼다네요. (참고) 데이터노드는 volume(로컬디스크)에 block 데이터를 저장합니다. 2018-05-29 10:53:44,775 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:mnode4.dev.com:50010 :DataXceiver erro.. 2021. 1. 7.
[HDFS] 네임노드 구동과정 (Namenode Startup Process) 네임노드가 시작되는 과정을 정리하면서 네임노드의 동작들을 더 제대로 이해해보고자 합니다 :) 1. fsimage를 디스크에서 읽어 메모리에 로딩한다. fsimage는 dfs.namenode.name.dir 경로에 저장되어 있다. 이 파일을 읽어 메모리에 로딩한다. 2. edits log 중에 반영되지 않은 것을 찾아 반영한다. 아직 체크포인팅 안 된 edits log를 journal노드에서 읽어온다. 체크포인팅이 안 된 edits log에는 파일이름에 inprogress가 붙는다. edits log를 fsimage에 반영한다. (체크포인팅) 3. 네임노드의 포트(8020, 50070)가 열린다. 그럼 데이터노드와 네임노드가 통신하며 데이터노드가 등록된다. 데이터노드가 네임노드에게 블록리포트를 보내준다. .. 2021. 1. 5.
[HDFS] Block Pool 개념 정리 HDFS에 데이터가 어떻게 저장되는지 이해하기 위해 Block Pool을 알아보겠습니다. Block Pool은 네임스페이스에 할당된 공간이라고 보면 된다. Block Pool에 블록 관리에 필요한 메타데이터(블록 위치 정보 등)를 저장한다. Block Pool은 메모리에 저장된다. Block Pool ID는 BP-- 형식으로 만들어진다. 네임노드 웹 UI(http://:50070)에서 Block Pool ID를 확인할 수 있다. HDFS Federation이 구성된 경우가 아니라면, 네임스페이스가 여러개 구성된 것이 아니기 때문에 Block Pool도 1개일 것이다. 데이터노드는 모든 Block Pool에 있는 블록들을 volume(로컬디스크)에 저장한다. 예를 들어, 데이터노드의 /data1/hdfs/.. 2021. 1. 4.
[HDFS] 하둡 Balancer 과정 개요 하둡 클러스터의 데이터 불균형 현상이 일어나는 원인과 밸런싱 과정을 알아본다. 하둡 클러스터 데이터 쏠림 현상 새로운 데이터 노드를 추가할 때 밸런서를 따로 돌리지 않으면 기존 데이터들은 새로운 데이터노드에 저장되지 않는다. 클라이언트 프로그램 클라이언트가 HDFS 쓰기 작업을 요청한다. 근데 어차피 어떤 데이터 노드에 쓸 건지는 네임노드가 결정해주는 건데 클라이언트 프로그램 때문에 데이터 쏠림이 발생하는 건가? HDFS 블록 할당 HDFS에 블록을 할당할 때 데이터노드들의 용량까지 고려되지 않는다. 그러다 보면 HDFS 언밸런싱이 생기게 된다. 나름의 할당 기준은 있다. 복제본 3개. Node local -> Rack local -> off switch 기준으로 블록이 할당된다. 하둡 클러스터 밸.. 2020. 7. 20.
[HDFS] Rack Awareness 란 HDFS 데이터 블록 복제 HDFS는 기본적으로 블록을 3개씩 복제한다. 복제시 아래와 같은 순서로 블록을 저장할 데이터노드를 선정한다. Node local > Rack local > off switch Node local : 작업하는 노드가 데이터노드의 일부라면, 여기에 블록을 저장한다. Rack local : 작업하는 노드와 동일한 랙에 있는 노드에 블록을 저장한다. off switch : 작업하는 노드와 다른 랙에 있는 노드에 블록을 저장한다. 이렇게 나누어 저장함으로써 장애가 생겨도 데이터 유실이 없도록 한다. 근데 하둡이 어떻게 노드의 위치를 알 수 있을까? 하둡의 Rack Awareness 설정을 통해 노드의 위치를 파악하는 것이다. 만약 namenode가 topology를 알아오지 못하면 무.. 2020. 7. 15.
반응형