de 7

Zookeeper API

1. Zookeeper API 주키퍼는 계층적인 네임스페이스를 제공하며 네임스페이스 내에 존재하는 모든 개별 노드를 znode라고 부른다 모든 znode는 데이터(바이트 배열)을 가질수 있고 자식 znode를 가질 수도 있다 znode는 상대경로를 지원하지 않고 절대 경로만 지원한다 데이터는 항상 전체를 읽고 쓰는 구조 znode는 1M 이하의 데이터와 자식 노드를 가질 수 있다 영속 종류에 따른 지노드 구분 구분 설명 영구 노드 (Persistent Nodes) - 클라이언트가 명시적으로 삭제하기 전까지 존재 임시 노드 (Ephemeral Nodes) - 세션이 유지되는 동안 활성 - 세션 종료 시 주키퍼에 의해 삭제 - 자식 노드를 가질수 없다 순차 노드 (Sequence Nodes) - 경로의 끝에..

DE/ZooKeeper 2023.08.30

ZooKeepr 장점과 특성

1. Zookeeper 장점 일관성, 순서, 지속성을 보장함 동기화를 위한 primirive(기초적인 요소)를 쉽게 구현 가능 분산 시스템에서 동시성으로 인해 생기는 잘못된 동작 차단 2. Zookeeper 특성 고가용성 시스템이 상당히 오랜기간동안 정상 운영되도록 함 느슨한 상호작용 연결 상호작용 참여자의 익명성을 보장 서로의 존재나 네트워크 세부사항을 모르더라도 프로세스가 서로 상호 발견, 소통이 가능 라이브러리 상호조정 패턴에 대한 구현물과 방법을 오픈 소스로 제공 뛰어난 처리량 순차적인 일관성 클라이언트로부터의 업데이트는 보내졌을 때 순서대로 적용 원자성 업데이트는 성공하거나 실패하거나 둘 중 하나이다 단일 시스템 이미지 클라이언트는 연결된 서버에 관계없이 같은 시스템을 바라보는 것처럼 동작함 신..

DE/ZooKeeper 2023.08.30

Znode

1. Znode 상태 정보들은 znode라고 불리는 곳에 key-value 형태로 저장 znode에 저장된 것을 이용하여 분산 애플리케이션들이 서로 데이터를 주고 받는다 각 znode는 데이터 변경 등에 대한 유효겅 검사 등을 위해 버전 번호를 관리 (데이터가 변동될 때 마다 지노드의 버전 번호가 증가) 주키퍼에 저장되는 데이터는 모두 메모리에 저장되어 처리량이 매우 크고 속도 또한 빠름 2. Zookeeper Ensemble 주키퍼는 과반수 방식에 따라 살아 있는 노드 수가 과반 수 이상 유지된다면 지속적인 서비스를 가능하게 함 일반적으로 3대 혹은 5대의 서버로 앙상블을 구성함 case1. Ensemble 3 - 노드 1대 다운 ➝ 과반수 유지 되므로 서비스 가능 - 노드 2대 다운 ➝ 과반수가 유지..

DE/ZooKeeper 2023.08.30

MapReduce

https://youtu.be/2RPVFhxps_s 1. 병렬 컴퓨팅 처리속도 향상을 위해서 cpu 칩 하나에 코어 여러개를 집어넣어 병렬적으로 연산처리 하도록 하는 컴퓨팅 시스템 2. 병렬 분산 처리 빅데이터를 처리하기 위해 비교적 저렴한 서버 여러개를 이용해서 간단한 계산을 한 이후 결과를 합쳐 최종 결과를 계산 3. MapReduce 대용량 데이터를 효율적으로 처리하기 위한 기술 여러 대의 서버가 하나의 시스템으로 작동하는 컴퓨터 클러스터 환경을 가짐 Map 단계 1. 데이터가 저장된 로컬에서 동작 2. 분산 저장된 데이터를 서버에서 처리 3. 공백으로 분류해 단어 1과 출력 Reduce 단계 1. 선정된 데이터 분석 및 통합 2. 글자 수 합을 구해 단어, 글자수 출력

DE/Hadoop 2023.08.30

HDFS (Hadoop Distributed File System)

1. Hadoop 하둡(Hadoop)의 HDFS에 대한 기본설명 하둡에서 HDFS에 대해 기본적인 기능을 알아보자. 아래내용은 도서 시작하세요! 하둡프로그래밍(위키북스/정재화지음)에서 HDFS만 발췌/요약정리한 내용이다. 하둡을 처음 공부하는 사람들에게 yookeun.github.io 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크 GFS(Google File System)과 MapReduce를 구현한 결과물 HDFS(Hadoop Distribute File Systme)에 데이터를 저장하고 MapReduce를 이용해 데이터를 처리함 여러 대의 서버에 데이터를 저장하고 저장된 각 서버에서 동시에 데이터를 처리하는 방식 트랜젝션이나 무결성을 보장해야하는 데이터처리에는 적합하지 않다 ..

DE/Hadoop 2023.08.29

Procedure vs Transaction vs Batch

1. 프로시저 자주 사용되는 logic이나 여러 application이 공통으로 사용하는 모듈을 미리 compile된 형태로 데이터베이스 내에 저장해놓고 필요할 때 이용하는 것 2. 트랜잭션 데이터베이스에서 수행되는 논리적 작업 단위 데이터베이스의 일관성과 무결성을 유지하기 위해 필요함 ACID 속성을 준수해야함 → 데이터베이스 작업이 안전하게 수행되고 복구 가능한 상태를 유지하는것을 보장 ❓ ACID Atomicity (원자성) Consistnecy (일괄성) Isolation (격리성) Durability (지속성) 3. 배치 여러 작업이나 데이터를 한번에 처리하는 방식 여러 작업이나 데이터를 모아 한꺼번에 처리함으로써 처리 속도를 향상시키거나 일괄적인 작업을 수행할 수 있음 ❓ 배치 종류 정기 배치..

DE/Hadoop 2023.08.29

ZooKeeper

1. ZooKeeper 필요성 여러대의 서버들로 클러스터를 구성하는 분산 플랫폼에서 분산 애플리케이션 관리를 위해 안정적인 코디네이션 애플리케이션이 필요함 → 부분 실패(Partial Failure) 때문 Partial Failure 1. 네트워크로 연결된 두 노드 사이에서 데이터가 전송된 후, 네트워크가 끊겼을 때 송신자는 수신자가 데이터를 받았는지 여부를 알 수 없다 2. 어떤 일이 일어났는지 확인하는 방법은 수신자에게 다시 연결해서 물어보는 방법밖에 없음 3. 이런 상황을 부분 실패라고 함 주키퍼를 사용하는 것으로 Partial Faliure을 줄일 수 있음 2. 분산 코디네이션(Coordination) 서비스란? 분산 시스템에서 시스템간 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을..

DE/ZooKeeper 2023.08.29