- 业务需求:sqoop从mysql导入数据到hive的orc表
脚本内容如下:
#!/bin/bash
sqoop import \
"-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
--connect jdbc:mysql://hdp1.jin:3306/db_test \
--username root \
--password hadoop \
--table t_user \
--hcatalog-database db_tmptable \ #直接加上库名和表名即可
--hcatalog-table t_user_tmp \
--null-string '\\N' \
--null-non-string '\\N' \
-m1
这样就可以将数据导入到hive的orc表.
- 业务需求二:将数据以全量形式导入到hive的orc格式动态分区表
脚本内容如下:
#!/bin/bash
sqoop import \
"-Dorg.apache.sqoop.splitter.allow_text_splitter=true" \
--connect jdbc:mysql://hdp1.jin:3306/db_test \
--username root \
--password hadoop \
--table t_user \
--drop-and-create-hcatalog-table \ #如果表存在就删除,保证数据不会重复
--hcatalog-table t_user_tmp \
--hcatalog-database db_tmptable
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")'
--null-string '\\N' \
--null-non-string '\\N' \
-m1
hive <<EOF
INSERT OVERWRITE TABLE db_test.t_user #t_user动态分区表
SELECT * FROM db_tmptable.t_user_tmp;
EOF
exit;