sqoop 導入數據到hive
1.1.導入數據到hive分區表(內表),指定分區
創建hive分區表
- –hive-database 指定數據庫
- –table 指定表
- –hive-overwrite 覆蓋已有表中的數據
從mysql導入數據到hive,導入的hive的默認數據庫
bin/sqoop import --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --m 1
從msyql導入hive,導入到指定數據庫
bin/sqoop import --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --m 1
導入數據到hive指定表
bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-database=tmp --hive-table xin_bang_data --m 1
導入數據到hive,覆蓋表中原有的數據
bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl123 --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --hive-table xin_bang_data --m 1
CREATE TABLE tmp.`xin_bang_data` (
`id` string,
`weixin_name` string,
`weixin_code` string,
`read_num` string,
`fans_num` string,
`new_index` string,
`insert_time` string
)
partitioned by(dt string)
row format delimited fields terminated by '\t';
1.2 把數據從mysql導入數據到hive分區表(內表),指定數據導入的分區
bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd --username crawl --password crawl --table xin_bang_data --hive-import --hive-overwrite --hive-database=tmp --hive-table xin_bang_data --m 1
bin/sqoop import --connect --connect jdbc:mysql://180.150.180.120:3306/mcd \
--username crawl \
--password crawl123 \
--table xin_bang_data \
--fields-terminated-by "\t" \
--delete-target-dir \
--hive-import \
--m 1 \
--hive-partition-key dt \
--hive-partition-value 20181117 \
--hive-database tmp \
--hive-table xin_bang_data
1.3.從mysql導入數據到hive外表
創建外表
CREATE external TABLE `YDDT` (
`ID` string,
`YDJC_ID` string,
`YDDT_DATA_TYPE` string,
`YDDT_BUSSINESS_NOW` bigint,
`YDDT_USER_NOW` bigint,
`YDDT_COLLECT_TIME` string,
`YDDT_CREATOR` string,
`YDDT_DATE` string,
`BACK` string
) PARTITIONED BY (day int) row format delimited fields terminated by '\t';
數據導入
sqoop import --connect jdbc:mysql://172.20.13.50:3306/TestBigDate --username root --password 123456 --table YDDT_2017_06_01 -m 3 --target-dir /user/hive/warehouse/dxyjpt.db/yddt/day=20170601 --fields-terminated-by '\t'
標記表的分區信息
alter table yddt add partition(day='20170601') location '/user/hive/warehouse/dxyjpt.db/yddt/day=20170601'