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'