sqoop导入导出数据

  其他常见问题
内容纲要

sqoop导入导出数据

概要描述

此文档旨在介绍sqoop操作inceptor连接其他数据库的导入导出功能

详细说明

1 添加驱动

1.1 将相应的数据库驱动放置TDH-CLIENT/sqoop/lib 下
以oracle为例:
file

2 source TDH-Client/init.sh

2.1 没有开kerberos执行:export HADOOP_USER_NAME=hive
2.2 开了kerberos执行:kinit hive

3 sqoop通用参数说明

–username 源数据库名称
–password 密码
–connect 数据库JDBC连接串
–query SQL语句,其中 where \$CONDITIONS 是固定写法
–target-dir 写入HDFS目录 后面跟的HDFS目录需要确认用户有写权限
-m -m 4 map个数,抽数的线程数,默认为4 当-m大于1时,需要指定–split-by 字段
–split-by –split-by id 数据划分列,默认为主键
–fetch-size –fetch-size 单次去多少条记录 一般取1000 可以不用
–null-string –null-string ‘\N’ string类型的空值
–null-non-string –null-non-string ‘\N’ 非string类型的空值
–delete-target-dir –delete-target-dir 导入数据前,清空hdfs目录
–field-terminated-by –field-terminated-by ‘\01’ 列分隔符
–hive-drop-import-delims 去除^A \n \r 等特殊字符

–append –append 是否设置为追加增量的方式导入,sqoop将把数据先导入到一个临时目录中,然后重新给文件命名到一个正式的目录中,以避免和该目录中已存在的文件重名。
-z -z,–compress 压缩格式,默认为gzip

file

oracle

1.4 列出XE下所有的表

sqoop list-tables --connect "jdbc:oracle:thin:@172.16.2.174:1521:XE" --username xxxx --password xxxx

file

1.5 导出表xxxx.TEST (用户名和表名要大写,orc事物表需先转换为text表)

inceptor原表:
file

sqoop export --connect "jdbc:oracle:thin:@172.22.44.1:1521:orcl" --username jane --password 123 --table tp --export-dir /inceptor1/user/hive/warehouse/default.db/hive/t3 --columns id,name --staging-table t1 --clear-staging-table -fields-terminated-by "\\01" --null-string '\\N' --null-non-string '\\N'

file
file

oracle最终表数据:
file

1.6 导入表

导入inceptor必须先导入hdfs

oracle原表数据:
file

sqoop import --connect "jdbc:oracle:thin:@172.22.44.1:1521:orcl" --username jane --password 123 --target-dir /tmp/jane -m 1 --query "select * from tp where \$CONDITIONS" --fields-terminated-by "\\01" --hive-drop-import-delims --null-string '\\N' --null-non-string '\\N'

file
file
执行后hdfs文件存储结构:
file
建外表接收hdfs数据:

CREATE EXTERNAL TABLE user_info_tab (
id STRING,
name string
)LOCATION 'hdfs:/tmp/jane';

file

其他信息

在sqoop抽取过程中,建议使用一下范本,能避免很多错误:
–fields-terminated-by "\01"
–hive-drop-import-delims
–null-string ‘\N’
–null-non-string ‘\N’

这篇文章对您有帮助吗?

平均评分 5 / 5. 次数: 1

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。