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下,底层会执行"LOAD DATA INPATH 'hdfs://kms-1.apache.com:8020/user/kms/employee' OVERWRITE INTO TABLE `employee` "命令,

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

被折叠的 条评论
为什么被折叠?



