복붙노트

[HADOOP] MySQL의에서 가져 오기 Sqoop을을 사용하여 하이브

HADOOP

MySQL의에서 가져 오기 Sqoop을을 사용하여 하이브

나는 Sqoop을 통해 분할 된 하이브 테이블 하이브로 (복합 기본 키를 가진) MySQL의 테이블에서> 4 억 개 행을 가져올 수 있습니다. 테이블은 20,120,605에서 하루 동안 기록 20,140,605 그리고 수천에 이르는 열 출발 날짜가 2 년 동안 데이터가 있습니다. 나는 출발 날짜를 기준으로 데이터를 분할해야합니다.

버전 :

아파치 하둡 - 1.0.4

아파치 하이브 - 0.9.0

아파치 Sqoop을 - Sqoop을-1.4.2.bin__hadoop - 1.0.0

내 지식에 따라, 3 가지가 있습니다 :

사람이 접근 방법 2와 3에 대한 입력을 제공 할 수 있습니까?

해결법

  1. ==============================

    1.난 당신이 하이브 분할 된 테이블을 만들 수 있습니다 같아요.

    난 당신이 하이브 분할 된 테이블을 만들 수 있습니다 같아요.

    그런 다음에 대한 Sqoop을 가져 오기 코드를 작성합니다.

    예를 들어 :

    Sqoop을 가져 오기 --hive 덮어 쓰기 --hive - 드롭 수입 delims --warehouse-DIR "/ 창고"--hive 테이블 \ --connect JDBC / XXXX DATABASE = \ --table --username XXXX --password XXXX --num - 매퍼 1 --hive 파티션 키 --hive 파티션 값 --hive 가져 오기 \  --fields 말단 별 ','--lines 말단 별 '\ n을'

  2. ==============================

    2.당신은 당신이 분할 된 테이블로 테이블에 데이터를 이동하기 전에, 먼저 분할 된 테이블 구조를 만들어야합니다. Sqoop을하는 동안, 필요 --hive 파티션 키와 --hive 파티션 값을 지정하지 않는 경우, --hcatalog 테이블 대신 --hive 테이블을 사용합니다.

    당신은 당신이 분할 된 테이블로 테이블에 데이터를 이동하기 전에, 먼저 분할 된 테이블 구조를 만들어야합니다. Sqoop을하는 동안, 필요 --hive 파티션 키와 --hive 파티션 값을 지정하지 않는 경우, --hcatalog 테이블 대신 --hive 테이블을 사용합니다.

    나의

  3. ==============================

    3.어떤 사람들이 이해하고 싶어이 아직 있다면, 그들은 사용할 수 있습니다

    어떤 사람들이 이해하고 싶어이 아직 있다면, 그들은 사용할 수 있습니다

    sqoop import --driver <driver name> --connect <connection url> --username <user name> -P --table employee  --num-mappers <numeral> --warehouse-dir <hdfs dir> --hive-import --hive-table table_name --hive-partition-key departure_date --hive-partition-value $departure_date
    

    패치에서 주 :

    sqoop import [all other normal command line options] --hive-partition-key ds --hive-partition-value "value"
    

    일부 제한 :

  4. from https://stackoverflow.com/questions/17334509/import-from-mysql-to-hive-using-sqoop by cc-by-sa and MIT license