Hadoop
-
Zookeeper Znode 알아보기Hadoop 2023. 12. 19. 04:44
- 목차 소개. Zookeeper 는 Znode 라는 데이터 저장기능이 존재합니다. Znode 는 데이터를 저장할 수 있는 논리적인 개념인데요. Hadoop NameNode 의 Namespace 와 같이 가상의 저장 개념입니다. Znode 는 파일시스템처럼 트리구조를 취하는데요. /hadoop-ha/hadoop-active /hadoop-ha/hadoop-standby /hadoop-ha/locks/operation1 위와 같는 형식의 트리 구조를 이룹니다. 그리고 각 트리의 노드에 해당하는 Znode 를 특정 데이터를 담을 수 있습니다. 이번 글에서는 Znode 가 어떻게 데이터를 저장하는지에 대해서 자세히 알아보려고 합니다. Zookeeper Znode 구조. Znode 는 In-Memory 구조를 ..
-
Hadoop File Permission 알아보기 (ACL)Hadoop 2023. 12. 15. 06:42
- 목차 소개. Hadoop 의 File Permssion 에 대해서 알아보려고 합니다. Hadoop 의 File Permission 은 기존의 Linux 시스템에서 사용하는 Permission 체계와 유사합니다. File 과 Directory 마다 Owner 가 존재하게 되구요. Owner 가 속하는 Group 이 존재합니다. 그리고 Read, Write, Execute 에 해당하는 권한을 부여할 수 있습니다. 또한 ACL (Access Control List) 또한 적용이 가능한데요. 이와 관련된 내용와 설정 방식이 대해서 알아보려고 합니다. 먼저 간단하게 Hadoop Cluster 를 생성해보도록 하겠습니다. 1. hadoop config 파일을 생성합니다. 하둡은 core-site.xml, hdf..
-
Hadoop DataNode 알아보기Hadoop 2023. 12. 12. 05:55
- 목차 DataNode. 하둡의 데이터노드는 실질적인 파일을 저장하는 영역입니다. 네임노드와 데이터노드가 모여 하둡이라는 분산 저장소를 형성하는데요. 네임노드는 파일들이 분산저장된 메타데이터를 저장하고, 데이터노드는 파일들의 block 들을 저장합니다. 간단한 예시를 하나 들어보겠습니다. test.txt 라는 파일 하나를 하둡 분산 저장소에 저장해보겠습니다. 하나의 네임노드와 세개의 데이터노드가 존재한다고 가정하겠습니다. 아래와 같은 방식으로 test.txt 파일이 hdfs 에 추가됩니다. hdfs dfs -put test.txt / 1. block size 가 128mb, file size 가 500mb 인 경우. 파일은 4개의 block 들로 나뉘어집니다. 500mb 파일이 block size 단위..
-
Hadoop fsimage 알아보기Hadoop 2023. 12. 11. 17:53
- 목차 소개. fsimage 는 네임노드가 파일들의 메타데이터를 저장하는 영역입니다. hdfs 를 통해서 파일이 생성될 때, 실질적인 파일은 block 단위로 DataNode 에 저장되게 되는데요. 해당하는 파일의 block 들을 편리하고 안정적으로 조회하기 위하여 파일의 메타데이터들이 fsimage 에 저장됩니다. fsimage 를 통해서 데이터의 영구성이 보장되구요. 네임노드의 in-memory 구조와 Edit Log 와 함께 네임노드의 데이터 관리를 위하여 사용됩니다. fsimage 는 이름에서 알 수 있듯이, File System 의 image 입니다. 네임스페이스로 관리되는 File System 안에서 데이터들을 스냅샷 형태로 관리하죠. 네임노드가 관리하는 대상이 파일의 메타데이터이기 때문에 ..
-
Hadoop Namespace 알아보기Hadoop 2023. 12. 4. 22:58
- 목차 소개. Namespace 는 네임노드가 메타데이터들을 관리하는 영역입니다. 메타데이터들이 저장되는 논리적인 단위, 논리적인 저장 영역이라고도 불리는데요. 파일이 저장되는 실질적인 위치가 아니기 때문입니다. hdfs file write 관련된 예시를 들어보겠습니다. 아래는 “/“ 위치에 test.txt 파일을 생성하는 hdfs 커맨드입니다. 여기서 “/“ 실질적인 저장 위치가 아닙니다. “/“ 는 Root Namespace 라고 불리는 하나의 Namespace 입니다. hdfs dfs -put ./test.txt / 따라서 네임노드의 루트 디렉토리을 확인해도 test.txt 라는 파일은 존재하지 않습니다. 이러한 방식대로 여러 Namespace 를 구성하여 구조적으로 파일의 메타데이터들을 관리할 ..
-
Hadoop Edit Log 알아보기Hadoop 2023. 12. 4. 19:48
- 목차 소개. 하둡의 네임노드는 기본적으로 in-memory 기반의 구조를 취합니다. 대부분의 메타데이터를 in-memory 에서 관리합니다. 이 말의 뜻은 메타데이터를 찾기 위해서 Disk 의 File 을 읽거나 쓰지 않는다는 의미이기도 합니다. 그래서 네임노드는 Edit Log 라는 버퍼를 사용하며 In-Memory 구조를 활용합니다. MySQL 데이터베이스가 Redo Log 와 BufferPool 이라는 두 구조를 가지는 것과 유사합니다. 네임노드는 가능한 많은 양의 메타데이터들을 메모리에서 관리하려고 합니다. 클라이언트가 특정 파일를 요청하면 메모리에 존재하는 메타데이터를 제공할 수 있습니다. 만약 메모리에 존재하지 않는다면 (Cache Miss) 디스크에 존재하는 메타데이터를 조회하여 제공합니..
-
Hadoop Block 알아보기Hadoop 2023. 11. 27. 06:15
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/20 Hadoop 도커로 실행하기 - 목차 소개. 하둡을 이해하기 위해서 실습을 하고자하였습니다. 하지만 리눅스 또는 AWS 에서의 실행은 VM 을 사용하거나 비용이 청구되는 수고로움이 있었습니다. 그래서 도커로 실행하는 방법 westlife0615.tistory.com 소개. hdfs 의 block 에 대해서 알아보려고 합니다. hdfs 는 하나의 파일을 작은 block 으로 나누어 block 단위의 저장을 합니다. block 의 크기는 대개 128mb 사이즈를 가집니다. 그래서 1gb 의 파일 하나는 8개의 block 들로 나뉠 수 있습니다. 이렇게 파일로부터 생성된 block 들은 여러 datanode 에 저장..
-
[Hadoop] Docker 로 Hadoop Cluster 실행하기 ( docker-compose )Hadoop 2021. 12. 15. 10:27
- 목차 소개. 하둡을 이해하기 위해서 실습을 하고자하였습니다. 하지만 리눅스 또는 AWS 에서의 실행은 VM 을 사용하거나 비용이 청구되는 수고로움이 있었습니다. 그래서 도커로 실행하는 방법에 대해서 작성해보고자 합니다. Single NameNode & DataNode. 아래 명령어는 1개의 NameNode 와 DataNode 를 실행하는 docker-compose.yaml 파일과 관련된 명령어들입니다. cat cat docker-compose -f /tmp/hadoop-docker-compose.yaml --project-name=hadoop up -d Docker 실행. 1. hadoop config 파일을 생성합니다. 하둡은 core-site.xml, hd..