Sqoop在很长一段时间都只支持导入为textfile、avrofile、sequencefile等格式,如果需要将数据导入为ORC、parquet等格式的Hive Table往往需要分两个步骤完成(先导出临时表,再通过Hive转换)。而从Sqoop 1.4.4开始,Sqoop集成了HCatalog,我们可以轻易地实现多格式支持。
HCatalog配置
Sqoop需要依赖HCatalog的lib,所以需要配置环境变量$HCAT_HOME,一般从hive目录下即可找到hcatalog的相关路径
导入命令
sqoop import
--connect jdbc:mysql://127.0.0.1:3306/test
--username your_user_name --password your_passwd
--table table_name --driver com.mysql.jdbc.Driver
--create-hcatalog-table
--hcatalog-table table_name
--hcatalog-partition-keys month,day
--hcatalog-partition-values 12,09
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")'
参数说明
参数
说明
connect
JDBC连接信息
username
JDBC验证用户名
password
JDBC验证密码
table
要导入的源表名
driver
指定JDBC驱动
create-hcatalog-table
指定需要创建表,若不指定则默认不创建,注意若指定创建的表已存在将会报错
hcatalog-table
要导出的目标表名
hcatalog-storage-stanza
指定存储格式,该参数值会拼接到create table的命令中。默认:stored as rcfile
hcatalog-partition-keys
指定分区字段,多个字段请用逗号隔开(hive-partition-key的加强版)
hcatalog-partition-values
指定分区值,多分区值请用逗号隔开(hive-partition-value的加强)
转载请注明出处: