본문 바로가기

Hive6

Hive Partition 하이브는 파일 기반 테이블을 사용하기 때문에 데이터 조회 시 모든 ROW 정보를 읽고 처리하는 방식이다. 따라서 데이터가 많아질수록 속도는 당연히 느려지게 된다. 이를 해결하기 위한 것이 Partition을 사용하는 것이다. 데이터를 저장할 때 특정 키 기준으로 파티션을 구성하면 해당 파티션만 읽기 때문에 데이터 처리 속도가 빨라지게 된다. 파티션은 데이터를 디렉터리로 분리하여 저장하고 파티션 컬럼을 hive query WHERE 조건에 컬럼처럼 사용할 수 있다. 파티션 테이블 생성 CREATE EXTERNAL TABLE partitionbychargingmode ( charging_station_name string, address string, charger_capacity string, charge.. 2022. 5. 26.
OpenCSVSerde 하이브는 CSV 형식의 데이터를 하둡에서 읽을 수 있게 해주는 CSVSerde를 제공한다. 하이브를 설치하고 테스트해 볼 겸 OpenCSVSerde를 이용해서 테이블을 만들고 데이터 INSERT까지 해보려고 한다. 공공데이터 포털에서 가져온 데이터는 63만 건 정도 되었는데 간단한 테스트를 위해 5000건만 넣어보려고 한다. 데이터를 넣기 전에 항상 인코딩을 먼저 확인해야 한다. 그렇지 않으면 한글이 깨져 데이터를 읽을 수 없게 된다. 따라서 인코딩을 utf-8로 맞춰주자. [root@node1 test]# file -bi electric_car_chargingstation.csv text/plain; charset=iso-8859-1 [root@node1 test]# iconv -c -f euc-kr .. 2022. 5. 20.
[Hive] Hive 3버전 특징 Hive 버전 3가 되면서 기존과 같이 TEXTFILE, SEQUENCEFILE, AVRO, ORC 등 여러가지 타입을 지원하지만 Hive Table은 기본적으로 Transactional 속성을 갖는다. 이는 Managed Table 및 ORC 타입 한정으로 UPDATE 및 DELETE 쿼리가 가능해진다. 직접 확인해보자. {테이블 : External Table, 타입 : TEXTFILE} hive> create external table t1 (col1 int, col2 int) > stored as textfile; OK Time taken: 0.77 seconds hive> insert into t1 values (1, 2); hive> update t1 set col1 = 3 where col1 .. 2022. 4. 19.
[Hive] Managed Table과 External Table Hive에는 내부 테이블과 외부 테이블이 있다. 이 둘의 가장 큰 차이점은 테이블의 소유자가 hive 이냐, 아니냐로 나눌 수 있다. Managed Table : 하이브 속성(hive.metastore.warehouse.dir)에서 정의한 디렉터리의 하위 디렉터리를 만들어서 데이터를 저장한다. 하이브에서 Managed Table을 삭제하면 테이블 내의 데이터도 삭제된다. External Table : 테이블을 생성할 때 External 키워드를 사용하며, LOCATION 절에 데이터 저장 위치를 알려주어 데이터가 존재한다는 것을 하이브에게 알려준다. Managed Table과 가장 큰 차이점은 하이브에서 외부 테이블을 삭제하면 하이브 내의 스키마만 삭제될 뿐 데이터는 그대로 보존된다. 따라서 중요한 데이.. 2022. 4. 19.
[Hive]HiveServer2 와 Beeline HiveServer2는 Hiveserver1의 후속으로 클라이언트가 하이브에 대해 쿼리를 실행할 수 있게 해주는 서비스이다. HiveServer2는 다중 클라이언트 동시성 및 인증을 지원한다. JDBC 및 ODBC와 같은 공개 API 클라이언트를 지원한다 Thrfit 기반 하이브 서비스 (TCP 또는 HTTP)와 웹 UI용 Jetty 웹 서버를 포함하는 복합 서비스로 실행되는 단일 프로세스 Thrift 기반 하이브 서비스는 HS2의 핵심이며 하이브 쿼리 서비스를 담당한다. Thrift는 플랫폼 간 서비스를 구축하기 위한 RPC 프레임워크이다. HiveServer2는 HTTP 전송을 위해 Thrift RPC 메시지 전송을 지원한다. 이는 클라이언트와 서버 간의 프록시 중개자를 지원하는 데 특히 유용하다. .. 2022. 3. 16.
[Hive] Hive 3.1.2 설치 (CentOS7, metastore - PostgreSQL) CenOS7에 Hive를 설치해보려고 한다. metastore는 PostgreSQL. Local metastore는 Hive와 같은 JVM에서 동작한다. 메타 데이터는 외부의 RDBMS에 저장되며 여러 사용자가 동시에 접근 가능하다. Embedded metastore(derby)는 한번에 한 명의 유저만 접근이 가능하기 때문에 주로 테스트 용도로 쓰인다. 이 글에서는 여러 사용자가 사용할 수 있는 Local metastore(PostgreSQL)를 사용하여 Hive를 설치하려고 한다. 설치파일 다운로드 후 압축 풀기 [hadoop@node3 ~]$ sudo yum install -y postgresql11-server postgresql11-contrib PostgreSQL 초기화 [hadoop@node.. 2022. 3. 16.