Sqoop导入数据到Hive的底层细节问题

Sqoop在导入数据到Hive时,若不指定数据库名,会默认导入到default数据库。首先,数据会被保存在HDFS的用户目录下,如/user/kms/employee。接着, Sqoop会生成小文件并最终移动到Hive表的存储路径,如/hive/warehouse/employee。如果Hive表不存在, Sqoop会自动创建表并转换字段类型。如果指定--hive-table及数据库,数据将导入指定路径。--target-dir选项可自定义导入路径。
摘要由CSDN通过智能技术生成

1.导入语句

注意:该语句未指定hive-table表的数据库名,所以会导入到默认的default数据库下。

sqoop  import \
--connect jdbc:mysql://192.168.10.203:3306/test?tinyInt1isBit=false\&zeroDateTimeBehavior=convertToNull\&dontTrackOpenResources=true\&defaultFetchSize=1000\&useCursorFetch=true \
--driver com.mysql.jdbc.Driver \
--username root \
--password-file /user/kms/sqoop.pwd \
--table employee \
--hive-import \
--hive-overwrite \
--hive-table employee \
--fields-terminated-by "\t" \
--null-string '\\N'  \
--null-non-string '\\N'

2.Sqoop是如何将表导入Hive的

sqoop会先将表导入到HDFS,默认情况下(即不指定导入的路径地址),会在当前用户的目录下生成与表名相同的文件夹,比如当前用户为kms,导入的表为employee,则会先将导入的文件放在HDFS的/user/kms/employee路径下,导入过程中在该路径下生成_temporary文件,完成之后会生成完整的小文件。最后会把这些文件放在hive表的存储路径下,默认会在hdfs://kms-1.apache.com:8020/user/hive/warehouse/employee下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值