hadoop 76

HiveServer2 와 Beeline

HiveServer2 와 Beeline · Version : Hadoop 3.0.0-cdh6.3.2, Hive HiveServer2(HS2)는 HiveServer1의 후속으로 클라이언트가 하이브에 대해 쿼리를 실행할 수 있게 해주는 서비스이며 아래와 같은 특징이 있다. · HS2는 다중 클라이언트 동시성 및 인증을 지원 · JDBC 및ODBC와 같은 공개 API 클라이언트를 지원 · Thrift 기반 하이브 서비스 (TCP 또는HTTP)와 웹 UI용 Jetty 웹 서버를 포함하는 복합 서비스로 실행되는 단일 프로세스 Beeline은 HiveServer2에 접속하여 Command shell을 수행할 수 있도록 도와주는 Client이며 SQLLine CLI를 기반으로하는 JDBC 클라이언트이기도 하다. Be..

Hive CLI

Hive CLI · Version : Hadoop 3.0.0-cdh6.3.2, Hive Hive CLI(Command Line Interface)는 하이브 쿼리를 실행하기 위한 명령 도구로, 쉘을 이용하여 사용자의 명령을 입력할 수 있다. 하이브 쿼리 실행시 다양한 옵션을 사용할 수 있으며, 대표적인 옵션은 아래와 같다. · -e : 커맨드라인으로 실행할 쿼리 · -f : 쿼리가 작성된 파일을 이용하여 실행할 경우 · --hiveconf : 하이브 설정값 입력 · --hivevar 쿼리에 사용할 변수 입력 hive --hiveconf mydb.data.name=queue --hivevar date=20190101 [하이브 쉘 입력] 하이브 CLI를 실행하고 쉘을 이용하여 사용한다. -- 커맨드에서 hiv..

HDFS Safe 모드

HDFS Safe 모드 · Version : Hadoop 3.0.0-cdh6.3.2 HDFS의 세이프(safe) 모드는 서버 메인터넌스를 위해 사용자가 임의로 설정할 수 있으며, 네임노드에 장애가 발생하여 정상적인 동작을 하지 않을때 자동으로 세이프 모드로 전환된다. 세이프 모드는 읽기 전용 상태가 되어 데이터 추가 및 수정이 불가능하며 복제기능이 중단된다. 아래 스크립트는 세이프모드의 상태를 확인, 세이프모드 ON/OFF 대한 명령어 이다. --Safe 모드인지 확인 hdfs dfsadmin -safemode get --Safe 모드 ON hdfs dfsadmin -safemode enter --Safe 모드 OFF hdfs dfsadmin -safemode leave HDFS가 세이프모드 일때, 데이..

HDFS 커럽션 파일 확인

HDFS 커럽션 파일 확인 · Version : Hadoop 3.0.0-cdh6.3.2 HDFS 운영중 데이터 노드에 문제가 있어 데이터 블록이 손실(정확히는 파일은 있으나 관리할 수 없는 상태)이 발생할 수 있다. 이러한 경우는 커럽트(Corrupt) 상태라 한다. 일반적으로 HDFS는 3중화 복제를 사용하기 때문에, 하트비트를 통해 데이터 블록에 문제가 발생하면 자동으로 감지하고 다른 데이터 노드의 복제본을 사용하여 복구를 진행 한다. 하지만 모든 블록에 문제가 발생하여 복구를 하지 못하는 경우 커럽트 상태가 된다. 커럽트 상태의 파일은 삭제하고 원본을 다시 업로드하여 복구해야 한다. 아래 스크립트는 현재 커럽트 블록이 있는지 확인할 수 있는 명령이다. 예제에는 hdfs 내부의 /user/data/ ..

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 기반 쿼리 언어와 함께 작..