Data Engineering
-
Data Fault Tolerance 하둡은 fault tolerance를 위해 SW로 복제본을 만들고 다른 머신, 다른 렉, 다른 데이터 센터로 분산 시킨다. HW로는 RAID 구성을 두어 fault tolerance를 더욱 높인다. RAID RAID는 Redundant Array of Inexpensive Disks를 말한다. 하드 디스크를 여러 개 독립적인 드라이브의 배열로 가상화하는 방식이다. 이를 통해 performance 뿐만 아니라 capacity, reliability를 개선할 수 있다. RAID 0 RAID 0은 데이터를 블럭단위로 나누고 전체 데이터 영역에 array로 분포하도록 나누는 방식이다. Drive 개수 만큼 동시에 read, write가 가능하여 속도가 빠르다. storage..
Hadoop RAID, Eraser CodingData Fault Tolerance 하둡은 fault tolerance를 위해 SW로 복제본을 만들고 다른 머신, 다른 렉, 다른 데이터 센터로 분산 시킨다. HW로는 RAID 구성을 두어 fault tolerance를 더욱 높인다. RAID RAID는 Redundant Array of Inexpensive Disks를 말한다. 하드 디스크를 여러 개 독립적인 드라이브의 배열로 가상화하는 방식이다. 이를 통해 performance 뿐만 아니라 capacity, reliability를 개선할 수 있다. RAID 0 RAID 0은 데이터를 블럭단위로 나누고 전체 데이터 영역에 array로 분포하도록 나누는 방식이다. Drive 개수 만큼 동시에 read, write가 가능하여 속도가 빠르다. storage..
2024.01.08 -
Observer Name Node 이전 포스팅 내용처럼 2024.01.08 - [Data Engineering/Hadoop] - Hadoop의 High Availability (고가용성) 아키텍처 Hadoop의 High Availability (고가용성) 아키텍처 Name node의 HA 하둡의 버전 1까지는 namenode는 SPOF(Single Point Of Failure)였다. datanode는 수평적 확장이 가능했지만, namenode는 하나의 인스턴스를 유지해야했으며 이 namenode가 이용불가능 해지면 클러스터 cstory-bo.tistory.com 여러 HA Architecture를 통해서 HA는 달성했지만 여전히 active namenode에 부하를 주는 문제가 발생한다. 이 부하를 해..
Observer Name Node(ONN)로 부하 분산Observer Name Node 이전 포스팅 내용처럼 2024.01.08 - [Data Engineering/Hadoop] - Hadoop의 High Availability (고가용성) 아키텍처 Hadoop의 High Availability (고가용성) 아키텍처 Name node의 HA 하둡의 버전 1까지는 namenode는 SPOF(Single Point Of Failure)였다. datanode는 수평적 확장이 가능했지만, namenode는 하나의 인스턴스를 유지해야했으며 이 namenode가 이용불가능 해지면 클러스터 cstory-bo.tistory.com 여러 HA Architecture를 통해서 HA는 달성했지만 여전히 active namenode에 부하를 주는 문제가 발생한다. 이 부하를 해..
2024.01.08 -
Name node의 HA 하둡의 버전 1까지는 namenode는 SPOF(Single Point Of Failure)였다. datanode는 수평적 확장이 가능했지만, namenode는 하나의 인스턴스를 유지해야했으며 이 namenode가 이용불가능 해지면 클러스터 전체가 이용 불가하다. HA Architecture 위의 그림처럼 Active, Stanby 2개의 상태 namenode를 두어서 SPOF 문제를 해결했다. active namenode가 다운되면, standby namenode가 승격되어 downtime을 최소화한다. 또한 stanby namenode는 backup namenode 역할도 수행한다. 이처럼 namenode가 예상치 못한 장애에 대해서 자동화된 failover를 수행할 수 있으..
Hadoop의 High Availability (고가용성) 아키텍처Name node의 HA 하둡의 버전 1까지는 namenode는 SPOF(Single Point Of Failure)였다. datanode는 수평적 확장이 가능했지만, namenode는 하나의 인스턴스를 유지해야했으며 이 namenode가 이용불가능 해지면 클러스터 전체가 이용 불가하다. HA Architecture 위의 그림처럼 Active, Stanby 2개의 상태 namenode를 두어서 SPOF 문제를 해결했다. active namenode가 다운되면, standby namenode가 승격되어 downtime을 최소화한다. 또한 stanby namenode는 backup namenode 역할도 수행한다. 이처럼 namenode가 예상치 못한 장애에 대해서 자동화된 failover를 수행할 수 있으..
2024.01.08 -
Name node & Data node Name Node Name node는 블럭의 위치, 권한 등의 메타 데이터를 가진다. 기본적으로 메모리에 메타데이터를 저장하고 2가지 종류의 파일로도 기록한다. 1. Fsimage : File System Image로 네임노드 생성 이후부터 namespace 정보를 모두 가지고 있다. 2. Edit log : Fsimage로부터 현재까지의 변경사항 로그이다. 이제는 Name node의 기능을 알아보자. Metadata Management 파일 시스템을 유지하기 위한 메타데이터를 관리한다. 파일 시스템 이미지(파일명, 디렉토리, 사이즈, 권한 정보)와 파일에 대한 블럭 매핑 정보를 가지고 있으며 빠르게 응답해야 하기 때문에 메모리에서 관리한다. File System ..
Hadoop 아키텍처 - Name/Data node & Replica & File Read/WriteName node & Data node Name Node Name node는 블럭의 위치, 권한 등의 메타 데이터를 가진다. 기본적으로 메모리에 메타데이터를 저장하고 2가지 종류의 파일로도 기록한다. 1. Fsimage : File System Image로 네임노드 생성 이후부터 namespace 정보를 모두 가지고 있다. 2. Edit log : Fsimage로부터 현재까지의 변경사항 로그이다. 이제는 Name node의 기능을 알아보자. Metadata Management 파일 시스템을 유지하기 위한 메타데이터를 관리한다. 파일 시스템 이미지(파일명, 디렉토리, 사이즈, 권한 정보)와 파일에 대한 블럭 매핑 정보를 가지고 있으며 빠르게 응답해야 하기 때문에 메모리에서 관리한다. File System ..
2024.01.07 -
HDFS HDFS는 하둡의 file system을 말한다. Design Goal 1. Hardware Failure hdfs는 분산 서버에 발생하는 다양한 장애를 빠른 시간에 감지하고 대처할 수 있게 설계되었다. 데이터를 저장하면 복제본을 만들며 분산 서버들은 주기적으로 health check를 통해 장애를 빠르게 감지하고 대처한다. 2. Streaming Data Access HDFS는 클라이언트의 요청을 빠르게 처리하는 것보다 동일한 시간 내에 더 많은 데이터를 처리하는 것을 목표로 한다. 그래서 user와의 상호작용보다는 batch 처리에 더 맞게 디자인 되어있다. HDFS는 Random Access 대신 Streaming 방식으로 데이터를 접근한다. 3. Large Data Sets 하나의 파일이..
HDFS Design Goal & Block Based File SystemHDFS HDFS는 하둡의 file system을 말한다. Design Goal 1. Hardware Failure hdfs는 분산 서버에 발생하는 다양한 장애를 빠른 시간에 감지하고 대처할 수 있게 설계되었다. 데이터를 저장하면 복제본을 만들며 분산 서버들은 주기적으로 health check를 통해 장애를 빠르게 감지하고 대처한다. 2. Streaming Data Access HDFS는 클라이언트의 요청을 빠르게 처리하는 것보다 동일한 시간 내에 더 많은 데이터를 처리하는 것을 목표로 한다. 그래서 user와의 상호작용보다는 batch 처리에 더 맞게 디자인 되어있다. HDFS는 Random Access 대신 Streaming 방식으로 데이터를 접근한다. 3. Large Data Sets 하나의 파일이..
2024.01.07 -
Hadoop 소개 점차 데이터 양과 종류가 다양해지면서 비정형 데이터들을 RDBMS에 저장하기에 데이터 크기도 크며 그렇게 까지 상세한 기능이 필요하지 않으면서 비용이 비쌌다. 하둡은 굳이 비싼 장비가 아니라도 어떤 수준의 장비든지 상관없이 설치해서 운용할 수 있으며 단순히 노드를 늘리며 용량을 키울 수 있다. 그리고 데이터 복제본으로 유실이나 장애에 대비할 수 있다는 장점이 있다. 뿐만 아니라 이렇게 여러 노드로 나누어 데이터를 저장하기에 분산 컴퓨팅을 통해 성능을 향상할 수 있다. Hadoop 생태계 하둡 버전1은 분산 파일 관리 시스템인 HDFS와 데이터 처리를 위한 mapreduce 프레임워크만 제공했다. 버전 2로 가면서 Yarn이라는 resource management 프레임워크를 도입하여 유..
Hadoop 소개Hadoop 소개 점차 데이터 양과 종류가 다양해지면서 비정형 데이터들을 RDBMS에 저장하기에 데이터 크기도 크며 그렇게 까지 상세한 기능이 필요하지 않으면서 비용이 비쌌다. 하둡은 굳이 비싼 장비가 아니라도 어떤 수준의 장비든지 상관없이 설치해서 운용할 수 있으며 단순히 노드를 늘리며 용량을 키울 수 있다. 그리고 데이터 복제본으로 유실이나 장애에 대비할 수 있다는 장점이 있다. 뿐만 아니라 이렇게 여러 노드로 나누어 데이터를 저장하기에 분산 컴퓨팅을 통해 성능을 향상할 수 있다. Hadoop 생태계 하둡 버전1은 분산 파일 관리 시스템인 HDFS와 데이터 처리를 위한 mapreduce 프레임워크만 제공했다. 버전 2로 가면서 Yarn이라는 resource management 프레임워크를 도입하여 유..
2024.01.07 -
이번에는 직접 이전 블로그 포스팅 했던 내용을 기반으로 클러스터를 구성해보려고 한다. 위와 같이 구성하였으며 클러스터 매니저 노드를 위한 서버 1개, 데이터&인제스터 노드 2개, 코디네이터 전용 노드 1개로 총 4개의 서버를 이용하였다. AMI를 이용한 서버 생성 우선 하나의 ec2 서버를 생성하고 OpenSearch를 설치한다. 이때 실행은 하지 않는다. 아래 글을 참고한다. 실행은 하지 않으며 systemctl service에 등록만 한다. 2023.12.27 - [Data Engineering/Distributed System] - EFK(ELK) 구축 해보기!! (서버 로그 수집) - 4. OpenSearch와 Open Dashboard 설치하기 EFK(ELK) 구축 해보기!! (서버 로그 수집)..
[OpenSearch] - 5. 직접 OpenSearch 클러스터 구성해보기이번에는 직접 이전 블로그 포스팅 했던 내용을 기반으로 클러스터를 구성해보려고 한다. 위와 같이 구성하였으며 클러스터 매니저 노드를 위한 서버 1개, 데이터&인제스터 노드 2개, 코디네이터 전용 노드 1개로 총 4개의 서버를 이용하였다. AMI를 이용한 서버 생성 우선 하나의 ec2 서버를 생성하고 OpenSearch를 설치한다. 이때 실행은 하지 않는다. 아래 글을 참고한다. 실행은 하지 않으며 systemctl service에 등록만 한다. 2023.12.27 - [Data Engineering/Distributed System] - EFK(ELK) 구축 해보기!! (서버 로그 수집) - 4. OpenSearch와 Open Dashboard 설치하기 EFK(ELK) 구축 해보기!! (서버 로그 수집)..
2024.01.06 -
이전에는 OpenSearch가 어떻게 개별 쿼리나 인덱스에 대해 어떻게 처리되는지를 알아봤다면 이번에는 어떠게 대량의 인덱스와 쿼리들을 안정적으로 처리하는 지를 알아보려 한다. OpenSearch 분산 아키텍처 OpenSearch는 아래 요소들로 구성된다. Cluster (클러스터) Node (노드) Shard (샤드) Segment (세그먼트) 클러스터는 노드의 집합을 말한다. 그리고 노드는 클러스터를 구성하는 하나의 인스턴스로, 도큐먼트가 저장되는 곳이다. 하나의 가상 서버로 보아도 된다. 클러스터는 도큐먼트를 여러 노드에 분산시켜 저장할 수 있다. 모든 노드는 클러스터의 인덱싱과 도큐먼트 검색에 참여한다. 모든 노드가 같은 기능을 수행하는 것은 아니다. 노드에도 다양한 타입이 있으며, 이 타입에 따..
[OpenSearch] - 4. 분산 아키텍처 & 각 노드 역할과 샤드이전에는 OpenSearch가 어떻게 개별 쿼리나 인덱스에 대해 어떻게 처리되는지를 알아봤다면 이번에는 어떠게 대량의 인덱스와 쿼리들을 안정적으로 처리하는 지를 알아보려 한다. OpenSearch 분산 아키텍처 OpenSearch는 아래 요소들로 구성된다. Cluster (클러스터) Node (노드) Shard (샤드) Segment (세그먼트) 클러스터는 노드의 집합을 말한다. 그리고 노드는 클러스터를 구성하는 하나의 인스턴스로, 도큐먼트가 저장되는 곳이다. 하나의 가상 서버로 보아도 된다. 클러스터는 도큐먼트를 여러 노드에 분산시켜 저장할 수 있다. 모든 노드는 클러스터의 인덱싱과 도큐먼트 검색에 참여한다. 모든 노드가 같은 기능을 수행하는 것은 아니다. 노드에도 다양한 타입이 있으며, 이 타입에 따..
2024.01.06