현행 버전: Hadoop 3.4.3 (2026-02-24) · 3.5.0 (2026-04-02). 아래 설치 문서는 3.3.x ~ 3.4.x 로 구성한 기록이다.
아파치 하둡(Apache Hadoop, High-Availability Distributed Object-Oriented Platform)은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서
동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크이다.
원래 너치의 분산 처리를 지원하기 위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다.
분산처리 시스템인 구글 파일 시스템을 대체할 수 있는 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)과 맵리듀스를 구현한 것이다..
베이스 아파치 하둡 프레임워크는 다음의 모듈을 포함하고 있다
- Hadoop common
- HDFS (Hadoop Distributed File System)
- Hadoop YARN (Resource Manager)
- Hadoop MapReduce (Map-Reduce)
- 연산을 올리지 않고 저장소로만 쓸 때 DataNode · NameNode 의 CPU · 메모리 · 디스크 · 네트워크를 잡는 기준.
- 메타데이터와 에디트 로그를 같은 디스크에 두면 안 되는 이유와 마스터 노드 디스크 나누기.
- 같은 네임스페이스를 복제하는 삼중화와 네임스페이스를 나눠 맡는 Federation 을 구분한다.
- 하둡 계열별 공식 지원 JDK 범위와 최신 JDK 에서 생기는 문제.
- 한 번 쓰고 여러 번 읽는 설계 전제와 레코드 단위 갱신의 간극.
- NameNode 한 대로 올리는 개발 · 테스트용 구성.
core-site.xml · hdfs-site.xml 예시.
- QJM(JournalNode) 과 ZKFC 자동 장애조치를 갖춘 이중화 구성.
- ZKFC 포맷 · NameNode 포맷부터 첫 기동까지의 순서.
- JournalNode · NameNode · DataNode · ZKFC 의 systemd 유닛 파일.
- 바이너리 배포부터 설정 파일 · slave 등록 · 구동까지 적어 둔 설정 사본.
- 특정 주소로 바인드하는 방법과 복제 트래픽을 NIC 로 가를 수 없는 이유.
- 클라이언트가 직접 붙는 포트와 Kerberos 를 쓸 때 추가로 필요한 포트.
hadoop-env.sh 에 JMX exporter 에이전트를 붙여 데몬 지표를 노출한다.
hadoop credential 로 비밀번호를 jceks 저장소에 넣어 설정 파일에서 걷어낸다.
hdfs haadmin 으로 상태를 확인하고 전환한다. 강제 전환의 위험도 함께.
- 노드 사이 편차를 고르게 만드는 balancer 실행 예시.
- threshold · 대역폭 · 동시 이동 수를 조절해 속도를 끌어올린다.
- 한 DataNode 안에서 디스크 사이 편차를 plan · execute 로 정리한다.
- NameNode · DataNode 의 컬렉터 선택과 힙 크기, GC 로그 남기기.
- 슈퍼그룹에 계정을 넣고 그룹 매핑을 갱신한다.
auth_to_local 로 결정되는 계정 이름과 홈 디렉터리 만들기.
fs.trash.interval 동작과 지운 파일 되살리기, 즉시 삭제.
- edits 파일을 열어 보는 도구 구분과 손상됐을 때의 복구 절차.
- 예제 jar 로 데이터를 만들고 정렬해 처리량을 재고 결과를 검증한다.
hdfs dfs -ls / 가 로컬을 보여 줄 때 — 설정 디렉터리와 경로 명시 습관.
- 이름 · 내용 · 수정일자로 찾기, 개수와 용량 세기.
- 파이썬 · 자바 코드로 목록을 읽고 업로드가 온전한지 체크섬으로 확인한다.
- 자주 쓰는 옵션과 비보안 ↔ Kerberos 클러스터 사이 전송, S3 대상 설정.
- ETag precondition 실패와 exit code 143 재시도,
.distcp.tmp.attempt_* 찌꺼기 정리.
- 인증이 다른 두 클러스터 사이를 WebHDFS 로 읽고 Spark 로 Hive · Kudu 에 적재한 기록.
- Browse the file system 화면이 비는 두 가지 원인을 갈라 본다.
- 디스크 교체 후 복제 부족 블록을 기다릴 때와 missing 블록을 처리할 때.
- 스토리지 정책과 가용 노드가 맞지 않아 쓰기가 거부되는 경우.
- 어디까지가 정상인지 가늠하고 파일 디스크립터 한도를 조정한다.
- fsimage 업로드가 계속 실패해 edits 가 쌓이는 장애와 손상된 JournalNode 되살리기.
- 전원 상실로 HA 가 깨진 뒤 Standby 재구성부터 missing block 정리까지.
- 자원 관리자. 기본 포트와
yarn-site.xml.
- 분산 처리 모델.
mapred-site.xml 과 JobHistory Server.
- DistCp 는 MapReduce 잡이다. 그래서 실행 환경에 MapReduce 라이브러리가 제대로 잡혀 있어야 하고, 그 라이브러리가 한 벌…
- 로컬 파일을 HDFS 로 올리면 소유자와 권한이 원본과 달라진다. 또 다른 계정으로 올리고 싶은데 커버로스가 꺼진 클러스터에서 사용자를 어떻게…
- HDFS 는 블록 복제본을 배치할 때 노드가 어느 랙에 있는지를 고려한다. 복제 수가 3 이면 첫 복제본은 쓰기를 수행한 노드(또는 임의 노드…
- S3 에 있는 파일을 HDFS 로 내려 가공한 뒤, 원본을 지우고 결과를 다시 S3 로 올리는 처리를 자바 애플리케이션 안에서 하는 경우다.…
- 핵심은
-w 다. 이것이 없으면 setrep 은 NameNode 에 목표 계수를 기록하고 바로 끝난다. 실제 블록 복사는 백그라운드에서…
- 평소 2 초면 끝나던
hdfs dfs -put 이 30 초씩 걸리고, 클라이언트와 DataNode 로그에 지연 경고가 찍힌다.
hdfs 명령이나 하둡 생태계의 자바 클라이언트를 돌리면 다음이 나고 멈춘다.
- Secondary NameNode 는 NameNode 의 예비기가 아니다. NameNode 가 죽어도 그 자리를 대신하지 않는다. 하는 일은…
- JDK 를 17 로 올린 뒤 WebHDFS 호출이 실패한다. 커버로스 티켓은 정상으로 보이고
hdfs dfs -ls / 같은 RPC 는 잘…