분류 전체보기 1386

HDFS에서 파일 삭제시 바로 삭제 될까? (휴지통 기능)

HDFS에서 파일 삭제시 바로 삭제 될까? (휴지통 기능) · Version : Hadoop 3.0.0-cdh6.3.2 HDFS에서 파일 삭제시 즉시 삭제되고 빈 공간이 반환될까? HDFS에는 휴지통 기능이라는 것이 있어서, 파일 삭제시 즉시 삭제되지 않고 휴지통 폴더 (/user/사용자명/.trash)로 이동된다. 휴지통에 있는 파일은 복구 할 수 있다. 휴지통 디렉터리는 설정된 간격으로 체크포인트가 실행되고, 설정된 기간이 지나면 영구 삭제 된다. 영구 삭제가 완료되면 유휴 공간으로 반환된다. 휴지통의 삭제 기간은 core-site.xml 파일에서 설정할 수 있다. fs.trash.interval 1440 fs.trash.checkpoint.interval 120 · fs.trash.interval ..

HDFS 고가용성 (High Availability) 개념

HDFS 고가용성 (High Availability) 개념 · Version : HDFS HDFS(Hadoop File System)에서 SPOF(Single Point of Failure) 는 네임노드이다. 네임노드가 손상되거나 중지되면 모든 작업이 중지되고 파일을 읽거나 쓸수 없게 된다. 하둡 2.0 부터는 SPOF를 보완하기 위해 네임노드 이중화를 도입하였으며, 액티브(Active) / 스탠바이(Standby)로 동작한다. 스탠바이 네임노드는 액티브네임노드로 부터 블록 리포트와 하트비트롤 모두 받아서 메타데이터를 유지하고 공유 스토리지를 이용하여 에디트 파일을 공유한다. 액티브 네임노드가 문제가 발생하면 스탠바이 네임노드가 액티브로 동작하게 되는데, 장애를 감지하기 위해 주피커를 이용하며 장애 발생..

Python으로 Hive 연결하기

Python으로 Hive 연결하기 · Version : Python 2.7.5, pip, Hive, CDH 6.3.0, Centos7 Hive는 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱할때 가장 많이 사용되는 데이터 웨어하징 솔루션이다. RDB의 데이터베이스, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공하여 SQL과 유사한 HiveQL쿼리를 사용하여 데이터를 조작할수 있다. · Hive Architecture : https://en.wikipedia.org/wiki/Apache_Hive 필자의 경우, 배치잡 성격의 데이터 처리나 하이브 쿼리 조회등의 자동화 작업을 대부분 파이썬 스크립트로 개발하고, 해당 파이썬을 Cron 으로 실행하는 방식으로 운영하고 있다. ..

HDFS Federation (다중 네임노드를 사용한 네임스페이스 분리)

HDFS Federation (다중 네임노드를 사용한 네임스페이스 분리) · Version : HDFS HDFS는 매우 큰 파일을 분산하여 저장하도록 설계된 Hadoop의 File System이다. HDFS 아키텍처는 Master/Slave 토폴로지로 구성되며 Master는 NameNode이며, Slave는 DataNode이다. NameNode는 메타 데이터(블록의 수, 복제본 위치 등)를 저장하고, 메타 데이터는 빠른 검색을 위해 마스터의 메모리에서 관리된다. NameNode는 슬레이브 노드를 유지 관리하고 작업을 할당한다. HDFS V2이전에는 전체 클러스터에 대한 단일 네임스페이스만 허용한다. 이 구성에서 단일 네임노드는 네임 스페이스를 관리한다. 네임노드에 장애가 발생하면 클러스터 전체가 서비스를..

Hive 테이블 생성

Hive 테이블 생성 · Version : Hive Apache Hive에서 테이블은 HDFS에 저장된 파일과 디렉터리 구조에 대한 메터 정보를 저장한다. Hive는 HiveQL이라는 SQL과 유사한 언어를 제공하며 아래와 같은 특징이 있다. · Hive에서 사용하는 테이블은 HDFS에 저장되며, HDFS는 한번 저장한 파일은 수정할 수 없기 때문에 UPDATE와 DELETE는 사용할 수 없다. · 데이터를 INSERT할때 빈 테이블에 입력하거나 입력된 데이터를 덮어쓰는 경우(INSERT OVERWRITE 구문 사용)에만 가능하다. · HiveQL은 FROM 절에만 서브쿼리를 사용할 수 있다. · HiveQL 뷰는 읽기 전용이다. · SELECT 문을 사용할때 HAVING절을 사용할 수 없다. · Sto..

Hive Architecture

Hive Architecture · Version : Hive Apache Hive는 데이터 쿼리 및 분석을 제공하기 위해 Apache Hadoop 위에 구축 된 데이터웨어 하우스 소프트웨어 프로젝트이다. Hive는 Hadoop과 통합되는 다양한 데이터베이스 및 파일 시스템에 저장된 데이터를 쿼리하기위한 SQL과 유사한 인터페이스를 제공한다. 분산 된 데이터에 대해 SQL 응용 프로그램 및 조회를 실행하려면 MapReduce Java API에서 기존 SQL 조회를 구현해야한다. Hive는Java API에서 쿼리를 구현할 필요없이 SQL과 유사한 쿼리 (HiveQL)를 기본 Java에 통합하는 데 필요한 SQL 추상화를 제공한다. 대부분의 데이터웨어 하우징 응용 프로그램은 SQL 기반 쿼리 언어와 함께 작..

HBase와 Zookeeper 상호작용 관계

HBase와 Zookeeper 상호작용 관계 · Version : HBASE, Zookeeper Hadoop 에코 시스템으로 HBase와 Zookeeper 시스템이 있다. HBase는 NoSQL의 분산 데이터베이스 시스템이며, Zookeeper는 분산 코디네이터 시스템으로 서버간의 상호 조정이 필요한 다양한 서비스를 제공한다. HBase는 마스터-슬레이브 구조를 가지고 있으며 마스터 역할을 하는 서버를 HMaster, 슬레이브 역할을 하는 서버를 HRegionServer라고 한다. 각 서버의 특징은 아래와 같이 정리할 수 있다. · HMaster는 HBase에 대한 설정파일들과 HRegionServer에 대한 정보만을 가지고 있는 서버이다. · HRegionServer는 HRegion이라 불리는 블록을 ..

NameNode and Secondary NameNode Heap Memory Size 변경

NameNode and Secondary NameNode Heap Memory Size 변경 · Version : CDH 6.3 NameNode를 Master and Slave로 구성하였을때, NameNode간의 힙메모리 설정이 다른 경우 경고가 발생한다. (서비스 장애가 발생하는 것은 아님) Cloudera Hadoop Manager에서는 아래와 같은 메뉴에서 Heap Memory Size를 설정할 수 있다. NameNode의 핵심은 HDFS 의 메타 데이터 (HDFS 블록 정보)를 관리하며, 파일 시스템 레이아웃은 디스크에 유지되며 블록 위치는 단독으로 메모리에 유지된다. 클라이언트가 파일을 조회하면 네임노드는 클라이언트에게 파일에 있는 모든 블록의 위치를 알려준다. 그리고 클라어인트는 데이터 전송을..

Hadoop Name Node

Hadoop Name Node · Version : HDFS 네임노드(Namenode)는 파일 시스템의 네임스페이스를 관리한다. 네임노드는 파일 시스템 트리와 그 트리에 포함된 모든 파일과 디렉터리에 대한 메타데이터를 유지한다. 이 정보는 네임스페이스 이미지(namespace image)와 에디트 로그(edit log)라는 두 종류의 파일로 로컬 디스크에 영속적으로 저장된다. 네임노드는 파일에 속한 모든 블록이 어느 데이터노드에 있는지 파악하고 있다. 하지만 블록의 위치 정보는 시스템이 시작할 때 모든 데이터노드로 부터 받아서 재구성하기 때문에 디스크에 영속적으로 저장하지는 않는다. 네임노드는 메타데이터를 관리하기 때문에 네임노드에 장애가 발생하면 파일 시스템은 동작하지 않으며 파일 시스템의 어떠한 파일..

HDFS 블록

HDFS 블록 · Version : HDFS HDFS 파일은 지정한 크기의 블록으로 나누어지고, 각 블록은 독립적으로 저장된다. HDFS 블록의 기본 사이즈는 128MB이며 수정이 가능하다. 블록이 큰 이유는 탐색 비용을 최소화 할 수 있기 때문인데, 블록이 크면 하드 디스크에서 블록의 시작점을 탐색하는데 걸리는 시간을 줄일 수 있고, 네트워크를 통해 데이터를 전송하는데 더 많은 시간을 할당할 수 있다. 여러개의 블록으로 구성된 대용량 파일을 전송하는 시간은 디스크 I/O 속도에 크게 영향을 받게 된다. 아래 그림은 64MB로 설정된 HDFS 블록에 160MB를 저장할때 블록 단위로 나누어져 저장된다. 블록 단위로 파일을 나누어 저장하면 파일 하나의 크기가 단일 디스크의 크기보다 크더라도 저장할 수 있다..