2012-05-09 6 views
0

Sqoop을 사용하여 대용량 MySQL 테이블을 HDFS로 가져올 때 --hive-import 플래그를 포함하는 것을 잊었습니다. 그래서 지금이 테이블을 HDFS에 두었고 하이브에 데이터를로드하는 쉬운 방법이 있는지 궁금합니다 (LOAD DATA 문을 직접 작성하지 않고). 그것으로 모든 데이터를 가져 오지 않았다Sqoop 데이터를 HDFS에서 하이브로 이동

./bin/sqoop create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table tweets 

이 올바른 하이브 테이블을 생성 한 동안 :

내가 만들-하이브 테이블을 Sqoop을 사용했습니다. 나는 여기에 간단한 것을 놓치고 있다는 느낌이 들었습니다 ...

기록을 위해, 나는 Sqoop 1.4.1과 함께 Elastic MapReduce를 사용하고 있습니다.

+1

Sqoop 소스 코드를 파고 들기 때문에, 나는 이것이 Sqoop 내에서는 불가능하다고 확신합니다. 그러나 가능한 경우, Sqoop이 할 일은 하이브에서 "LOAD DATA INPATH '/ user/hadoop/tweets'INTO TABLE'tweets'와 같은 것을 실행하는 것입니다. 충분히 고통 스럽네요. – Nick

답변

4

하이브에 외부 테이블을 만들고이 파일을 가리킬 수 없습니까?

create external table something(a string, b string) location 'hdfs:///some/path' 
1

명령에 "가져 오기"가 지정되지 않았습니다.

$ Sqoop을 수입 --create-하이브 테이블 --connect JDBC : mysql을 : 구문 Sqoop을 도구 이름 [도구 인수] 그것은 다음과 같아야합니다

입니다 // XXX : 3306/dw - 사용자 이름 xxx - 패스워드 xxx - 하이브 임포트 - 표 트윗

관련 문제