Impala Connection refuse Error

-          Couldn't open transport for hd-master:26000 (connect() failed: Connection refused)

 

·       Version : CDH 6.3

 

파이썬의 pyimpala 사용하여 Hadoop Impala 데이터를 입력하는 클라이언트가 있는데, 어느날부터 아래와 같은 오류를 출력하며 데이터가 입력되지 않았다.

InternalException: Error requesting prioritized load: Couldn't open transport for hd-master:26000 (connect() failed: Connection refused)

Error making an RPC call to Catalog server.

 

위와 같은 오류 메시지가 발생하였을경우,  impala 환경설정에서 Java Heap Size of Catalog Server in Bytes사이즈를 넉넉하게 할당함으로써 문제를 해결할 있다.

Java Heap Size of Catalog Server in Bytes

 

 

2020-06-11 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, HDFS, 하둡 파일 시스템, 임팔라, Impala, Connection refuse, 임팔라 커넥션 오류

Hive 데이터 타입

 

·       Version : Hive

 

Hive 여러 크기의 정수형과 부동소수점, 불린형과 임의의 길이를 가지는 문자열, TIMESTAMP, BINARY 타입등을 제공한다. 각각의 데이터형은 자바로 구현되어 있어 자바 데이터 타입과 동일하게 하이브에서 사용된다.

타입

크기

리터럴 문법 예제

TINYINT

1바이트 정수형

20

SMALLINT

2바이트 정수형

20

INT

4바이트 정수형

20

BGINT

8바이트 정수형

20

BOOLEAN

TRUE 또는 FALSE

TRUE

FLOAT

단정도 부동 소수점

3.14159

DOUBLE

배정도 부동 소수점

3.14159

STRING

문자의 시퀀스, 또는 문자열  설정가능. 작은 따옴표 큰따옴표 사용가능

‘Hello Hive’, “Hello Hive”

TIMESTAMP

정수형, 부동소수점, 문자열형

유닉스 TIMESTAMP, JDBC 호환 java SQL Timestamp 포맷. 소수점 9자리(nano second) 까지 가능

BINARY

바이트 배열의 형태 지원

 

 

BYNARY 데이터형은 관계형 데이터베이스의 VARBINARY 비슷하지만 관계형 데이터베이스는 BLOB 데이터 형은 별도의 저장소에 보관하는반면에, 하이브는 BINARY 데이터형의 데이터를 레코드에 모두 저장한다.

 

하이브는 다른 SQL 호환 언어처럼, 데이터형 이름의 대소문자 구분을 무시한다. 하지만 SQL 에서 일반적으로 지원하는 최대 허용 길이를 갖는 문자배열 지원하지 않는다. 관계형 데이터베이스와 목적이 다를뿐더러 다양한 파일 포맷을 지원해야 하기 때문에 필드를 구분할 있는 구분기호에 의존한다. 또한 하둡 하이브는 디스크의 읽기, 쓰기 성능 최적화를 강조하기 때문에 컬럼값이 길이를 고정하는것은 상대적으로 중요하지 않다.

 

하이브에서 단점도 부동소수점(FLOAT) 배정도 부동소수점(DOUBLE) 컬럼을 비교하거나, 정수형 값을 비교하는 쿼리를 실행하면, 묵시적으로 개의 데이터 타입중에 크기의 데이터  타입으로 변환하여, 동일한 데이터 타입으로 만든 비교한다. 문자열의 값을 숫자로 해석하려는 경우 명시적으로 다른 데이터형으로 변환하여 사용할 있다.

 

하이브는 struct, map, array 같은 컬럼을 지원한다. 또한 컬렉션 데이터 타입의 이름 대소문자 구분을 무시한다.

타입

설명

리터럴 문법 예제

STRUCT

C 구조체나 객체와 유사. 필드는 표기법으로 사용

struct(‘Sungwook’, ‘Kang’)

MAP

Key-Value 처럼 필드를 배열 표기법으로 사용

map(‘first’,’Sungwook’,’last’,’Kang’)

ARRAY

0으로 시작하는 정수로 색인할 있는 동일한 데이터형의 순차 시퀀스

array(‘Sungwook’, ’Kang’)

 

하이브는 개념을 가지고 있지 않다. 하지만 색인 테이블은 사용이 가능하다. 컬렉션 데이터 타입은 자바의 제네릭(generics) 문법 규칙을 따를 것에 유의해야한다. 예를들어 MAP<STRING, FLOAT> 모든 키는 STRING 데이터 타입을 가지고, 모든 값은 FLOAT 이다. ARRRAY <STRING> 마찬가지로 모든 아이템은 STRING 데이터 타입을 가진다. STRUCT 서로 다른 데이터 타입을 섞어 사용할 있으나 STRUCT 안에서 선언된 위치는 고정된다.

 

 

 

[참고자료]

·       Hive Data Types : https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

 

 

2020-06-08 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, HDFS, 하둡 파일 시스템, Hive, 하이브, 하이브 데이터 타입

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive 텍스트파일 인코딩  (0) 2020.06.12
Impala Connection refuse Error  (0) 2020.06.12
Hive 데이터 타입  (0) 2020.06.09
HDFS 데이터 저장소에는 RAID구성이 필요할까  (0) 2020.06.08
Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19

NoSQL 특징및 분류

 

NoSQL 아래와 같은 속성을 가지고 있다.

·       Key-Value (-밸류) 또는 이를 응용한 데이터 모델

·       상대적으로 값싼 다수의 하드웨어를 이용

·       데이터는 분산된 노드에 파티션 복제되어 저장

·       데이터의 정합성 보다 단절내성에 대한 요구사항에 목적

·       2단계 커밋의 트랜잭션 수준보다, 정족수 기반의 트랜잭션 선호

 

데이터 모델은 아래와 같이 분류 있다.

·       Key-Value : 가장 단순한 데이터 모델로, 키와 바이너리 타입의 값을 저장소에 저장하는 구조이며, 데이터 조회또하 키로만 조회할 있다.

·       Column :  관계형 데이터베이스와 비슷하게 데이터는 컬럼에 저장되며, 트에빌, 컬럼등과 같은 스키마가 존재한다.

·       Document :  데이터의 저장단위가 문서가 되며 하나의 무서 내에는 여러 개의 필드와 필드에 대응하는 값이 있다.

·       Graph :  그래프에 있는 노드와 엣지를 저장하고 이를 쉽게 네비게이션할 있는 모델을 제공한다.

 

아래 표는 데이터 모델에 대한 대표적인 솔루션들이다.

Data Model

Solutions

Key-Value

Memcached, Dynamo, Volemort, Redis

Column

Google Bigtable, Cloudera, HBase, Hypertable, Cassandra

Document

MonhoDB, CouchDB

Graph

Neo4j, FlockDB, InfiniteGraph

 

대부분의 NoSQL 분산된 서버에 데이터를 저장한다. 이때 분산을 어떻게 하느냐에 따라 크게 메타데이터방식과 P2P 방식으로 분류할 있다.

·       메타데이터 : 데이터의 배치 정보가 중앙 집중적인 데이터 서버나 마스터 서버에 저장되어 있으며, 클라이언트는 데이터 연산을 위해 중앙(마스터) 서버를 경유해 실제 데이터를 처리할 서버로 접속하는 방식이다. 데이터 정보를 중앙에서 관리하기 때문에 관리가 편하며 맵리듀스와 결합하기도 용이하다. 단점으로는 중앙(마스터) 서버가 문제가 생기거나 데이터 관리 테이블에 문제가 발생하면 전체 데이터에 접근할 수가 없다. 대표적으로 빅테이블, 몽고DB 등이 방식을 사용한다.

·       P2P : 별도의 메타 정보가 없으며 해시 함수를 이용해 특정 키를 서비스하는 서버를 찾는 방식. 메타 정보를 관리하는 서버가 없기 때문에 장애범위가 지역적이다. 하지만 저장된 데이터를 이용해 분석 작업을 하는 경우 메타데이터 방석보다 어렵다.

 

파일 저장 방식에 따라 2가지로 구분할 있다.

·       데이터 파일은 분산 파일 시스템에 저장하고, 데이터 관리 시스템에서는 논리적인 관리만 담당하는 방식은 데이터의 복제, 장애 발생시 복제본의 재생성등은 분산 파일 시스템에서 제공하는 기능을 이용한다. 빅테이블, 클라우데이터, HBase 등이 있다.

·       데이터 관리 시스템 자체적으로 데이터 파이을 저장하는 방식은 데이터 관리 시스템 자체적으로 복제, 장애 복구 등에 대한 기능을 담당한다. 대부분의 NoSQL 솔루션들이 방식을 사용한다.

 

2020-06-08 / Sungwook Kang / http://sungwookkang.com

 

 

NoSQL, 분산 데이터 저장, NoSQL 특징, NoSQL 분류, 분산처리, 메타데이터, 데이터노드

'NoSql' 카테고리의 다른 글

NoSQL 특징및 분류  (0) 2020.06.09
CAP 이론  (0) 2020.06.08
Cassandra 설치  (0) 2016.10.07

HDFS 데이터 저장소에는 RAID구성이 필요할까

 

·       Version : HDFS

 

HDFS 클러스터에서 데이터노드 저장소 용도로 RAID(Redundant Array of Independent Disks) 사용하면 이득이 있을까?

결론부터 이야기하면 이득이 없다. HDFS 노드간에 복제하는 기능이 있어 RAID 제공하는 중복성(redundancy) 필요하지 않기 때문이다. 또한 성능 향상을 위해 흔히 사용하는 RAID 0 (Striping) 모든 디스크에 DHFS 블록을 연속적으로 배열하는 HDFS JBOD (Just a Bunch of Disks)방식보다 느리다는 것이 밝혀졌다. 이유는 RAID 0 읽기/쓰기 동작의 경우 RAID 배열에서 가장 느린 디스크의 속도에 의해 제한을 받기 때문이다. 반면 JBOD에서는 디스크 동작들이 독립적이며 이러한 동작들의 평균속도는 가장 느린 디스크보다 빠르다. 실제로 동일한 제조사의 동일 모델의 디스크여도 편차를 보이는 경우가 있다. 또한 JBOD 환경에서는 디스크 하나가 고장날 HDFS 고장난 디스크 없이도 계속해서 동작할 있지만  RAID 하나의 디스크 고장이 전체 디스크 배열을 불능 상태로 만들 있다. 뜻한 RAID 0에서 디스크 한개의 불량이 노드 하나를 통째로 불능 상태로 만들 있다는 뜻이다.

 

그렇다면  HDFS에서 RAID 정말 필요 없을까?  네임노드에는 RAID 1 (Mirroring)으로 구성하여 가용성을 높일 있다.

 

디스크 목록을 dfs.data.dir 매개변수에 전달하면 하둡은 사용 가능한 모든 디스크를 사용한다. 디스크가 오프라인 상태가 되면 사용가능 대상에서 제외한다. 그리고 제외된 디스크가 다시 사용가능한 상태가 되었는지 검사하지는 않는다.

 

Note : 하둡 시스템에 사용하는 메모리는 ECC 메모리를 사용하도록 한다. ECC 메모리가 아닌 경우 하듭 클러스터에서 체크섬 오류가 발생할 있다.

 

 

[참고자료]

 

 

2020-06-07 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, HDFS, 하둡 파일 시스템, 하둡 RAID, 분산 처리, 분산 저장

'SW Engineering > Hadoop' 카테고리의 다른 글

Impala Connection refuse Error  (0) 2020.06.12
Hive 데이터 타입  (0) 2020.06.09
HDFS 데이터 저장소에는 RAID구성이 필요할까  (0) 2020.06.08
Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18

+ Recent posts