2014-10-16 2 views
3

임 64 메가 바이트 블록을 저장하는 것입니다 : 일 - HDFS에 구체적으로/사용자/하이브/데이터 세트 에 위치 폴더라는 데이터 세트에 CSV를로드 - 기본 DB에로드하기 위해 메타 스토어 관리자를 사용로드 큰 CSV는 단지 내 3기가바이트의 색조를 통해 하둡에서 CSV와 내가 지금까지 시도 인을로드하려고 클라우 데라의 빠른 시작 VM 5.1.0-1</p> <p>임을 사용

모든 것은 내가 그것을로드 관리하는 좋은 의미를 작동 오른쪽 기둥으로

쇼 테이블 통계는 크기가 64MB의 대신 3GB의이어야 CSV의 실제 크기는 것을 나는 실현

을 NEW_TABLE : 가장 큰 문제는 내가 임팔라는 다음 쿼리를 실행하여 테이블을 쿼리 할 때이다 .

또한 임팔라를 통해 개수 (*)를 계산하면 실제 700 만 개에 비해 행 수가 70000 개에 불과합니다.

모든 도움을 주시면 감사하겠습니다.

미리 감사드립니다.

+0

로드하기 전에 CSV 파일이 이미 잘 렸습니까? – Romain

+0

아니요. 지금까지 필자는 임팔라를 통해 표를 생성하고 거기에서로드하는 방법을 찾았습니다. 그러나이 경우 필자가 가지고있는 140 개의 모든 열을 포함하여 create table 문을 지정해야합니다. create table (A 문자열, B int 등)과 같은 것입니다. 이것은 관리하기에 고통 스럽습니다. 그래서 저는보다 자동화 된 솔루션을 찾고있었습니다. – bobo32

답변

4

나는 똑같은 문제를 겪었습니다. 이는 Hue가 64MB 제한이있는 웹 인터페이스를 통해 파일을 가져 오는 방법과 관련된 문제입니다.

필자는 Hive CLI와 DDL 코드가있는 텍스트 파일에 대해 -f 플래그를 사용하여 큰 데이터 세트를 가져 왔습니다.

예 :

hive -f beer_data_loader.hql



beer_data_loader.hql :

CREATE DATABASE IF NOT EXISTS beer 
    COMMENT "Beer Advocate Database"; 


CREATE TABLE IF NOT EXISTS beer.beeradvocate_raw( 
    beer_name   STRING, 
    beer_ID    BIGINT, 
    beer_brewerID  INT, 
    beer_ABV   FLOAT, 
    beer_style   STRING, 
    review_appearance FLOAT, 
    review_aroma  FLOAT, 
    review_palate  FLOAT, 
    review_taste  FLOAT, 
    review_overall  FLOAT, 
    review_time   BIGINT, 
    review_profileName STRING, 
    review_text   STRING 
    ) 
COMMENT "Beer Advocate Data Raw" 
ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '|' 
STORED AS parquet; 


CREATE EXTERNAL TABLE IF NOT EXISTS beer.beeradvocate_temp( 
    beer_name   STRING, 
    beer_ID    BIGINT, 
    beer_brewerID  INT, 
    beer_ABV   FLOAT, 
    beer_style   STRING, 
    review_appearance FLOAT, 
    review_aroma  FLOAT, 
    review_palate  FLOAT, 
    review_taste  FLOAT, 
    review_overall  FLOAT, 
    review_time   BIGINT, 
    review_profileName STRING, 
    review_text   STRING 
    ) 
COMMENT "Beer Advocate External Loading Table" 
ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '|' 
LOCATION '/user/name/beeradvocate.data'; 


INSERT OVERWRITE TABLE beer.beeradvocate_raw SELECT * FROM beer.beeradvocate_temp; 
DROP TABLE beer.beeradvocate_temp; 
+1

감사. 대신 임팔라 껍질을 사용했는데 효과가있었습니다. – bobo32

+0

파일이 이러한 명령으로 HDFS에 지속적으로 저장되어 있습니까? –

2

색조 버그처럼 보인다. 해결 방법을 찾았습니다. 테이블을 만들 때 "파일에서 데이터 가져 오기"체크 상자를 선택하면 파일이 잘립니다. 빈 표를 만들려면 선택하지 마십시오. 그런 다음 Metastore Manager에서 새로 만든 테이블을 선택하고 Actions 메뉴의 "Import Data"옵션을 사용하여 데이터를 채 웁니다. 이것은 모든 행을 채워야합니다.

0

64MB보다 큰 헤더 파일을 가져올 때이 버그 (HUE-2501)가 발생했습니다.

피터의 해결 방법이 좋으며 Hue 3.8 및 CDH5.3.2부터 해결되었습니다.

+0

CDH 5.12를 HIVE 4와 함께 사용하면 문제가 여전히 분명합니다. –