Development/Hadoop(17)
-
하둡 공부 - Hadoop I/O
- 압축 gzip이 일반적 목적의 압축 도구이며, 공간/시간 트레이드오프의 중앙에 위치함 bzip2는 느리지만 분할 압축이 가능함 Map 출력을 LZO, LZ4, Snappy와 같은 빠른 압축기를 사용하여 전송할 데이터양을 줄이면 성능을 향상시킬 수 있음 시스템에서 I/O와 CPU 중 어떤 자원에 더 여유가 있는지 혹은 데이터에 종류와 특성에 따라 압축 여부와 압축 도구를 선정해야 함 - 직렬화 직렬화(Serialization) 네트워크 전송을 위해 구조화된 객체를 바이트 스트림으로 전환하는 과정 역직렬화(Deserialization) 바이트 스트림을 일련의 구조화된 객체로 역전환하는 과정 Hadoop은 Writable이라는 매우 간결하고 빠른 자체 직렬화 포맷을 사용함 Text (Writable), I..
2019.01.24 -
하둡 공부 - YARN
YARN을 통해 각 Task들이 스케줄링되고 클러스터의 여러 노드에서 실행됨 특정 Task가 실패하면 자동으로 다른 노드를 재할당하여 다시 실행됨 - YARN의 특징 Resource Manager (RM): 클러스터 전체 자원의 사용량을 관리 Node Manager (NM): 컨테이너를 구동하고 모니터링하는 역할을 수행 Application Master (AM): 클라이언트의 요청을 담당하여, 컨테이너 수행 결과를 반환함 (구체적인 방법은 애플리케이션에 따라 다름) - YARN의 자원 요청 컨테이너에 필요한 컴퓨터 자원과 지역성 제약을 표현할 수 있음 지역성을 고려한 특정 랙의 노드 - 동일 랙의 임의 노드 - 클러스터의 임의 노드 순으로 컨테이너 할당을 시도 - YARN 스케줄러 FIFO 쉽고 설정이 ..
2019.01.24 -
하둡 공부 - Hadoop Read & Write
- Read - Write 쓰기 실패 시 Ack Queue로부터 Data Queue로 다시 불러와 쓰기를 재시도 - 복사본 배치 서로 다른 랙에 복제본을 배치하면 중복성은 최대화되지만 대역폭 비용은 커짐 Read와 Write에서 동일한 전략을 가지며, 네트워크 대역폭 사용 최소화를 위함 하둡의 기본 전략 첫 번째 복제본을 클라이언트와 같은 노드에 배치함 클라이언트가 클러스터 외부에 있으면 무작위로 노드(파일이 너무 많거나 바쁜 노드는 제외)를 선택함 두 번째 복제본은 첫 번째 노드와 다른 랙(무작위)의 노드에 배치됨 세 번째 복제본은 두 번째 노드와 같은 랙의 다른 노드에 배치됨 그 이상의 복제본은 클러스터에서 무작위로 선택하여 배치함 - 데이터 지역성 최적화 네트워크 대역폭을 사용하지 않도록 입력 데이..
2019.01.24 -
하둡 공부 - HDFS
HDFS (Hadoop Distributed FileSystem) - HDFS의 설계 특성 매우 큰 파일(수백 기가 또는 페타바이트)의 저장 지원 첫 번째 레코드를 읽는 데 걸리는 지연 시간보다 전체 데이터셋을 모두 읽을 때 걸리는 시간이 더 중요 - Block HDFS Block은 기본적으로 256MB이며, Block 크기로 쪼갠 것을 Chunk라고 함 Replication이 용이한 설계를 위해 Block 단위로 저장함 Block은 무조건 설정된 크기 만큼 파일을 쪼개어 저장함 - Master-Worker Pattern Namenode 파일시스템의 Namespace(모든 파일과 디렉터리에 대한 메타데이터)를 관리 Namespace Image, Edit Log Block의 위치 정보는 시스템이 시작할 때..
2019.01.24 -
Hadoop 2.7.3 Fully-distributed Mode Setup
설치 환경은 Ubuntu 16.04 LTS의 Master 1, Worker 3으로 총 4개의 VM을 이용하였다. 당연히 먼저 하둡을 다운로드 받는다. (링크는 Apache Hadoop Release, 현재 2.7.3) 받은 하둡 파일을 압축을 풀고, tar zxvf hadoop-2.7.3.tar.gz mv hadoop-2.7.3 hadoop JDK도 물론 설치해준다. sudo apt install openjdk-8-jdk openjdk-8-jre 이제 설치한 하둡과 자바의 환경 변수(bashrc 파일의 제일 하단에 입력)를 등록. vi ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ export HADOOP_HOME=/home/bigpros/..
2017.02.01