sqoop导入到HDFS怎么都是java文件总结

sqoop导入到HDFS怎么都是java文件总结,第1张

如下面这个shell脚本:

#Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号

CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1521:DWRAC2

#使用的用户名

ORACLENAME=kkaa

#使用的密码

ORACLEPASSWORD=kkaa123

#需要从Oracle中导入的表名

oralceTableName=tt

#需要从Oracle中导入的表中的字段名

columns=AREA_ID,TEAM_NAME

#将Oracle中的数据导入到HDFS后的存放路径

hdfsPath=apps/as/hive/$oralceTableName

#执行导入逻辑。将Oracle中的数据导入到HDFS中

sqoop import --append --connect $CONNECTURL --username $ORACLENAME --password $ORACLEPASSWORD --target-dir $hdfsPath --num-mappers 1 --table $oralceTableName --columns $columns --fields-terminated-by '\001'

执行这个脚本之后,导入程序就完成了。

Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中。

Sqoop也是基于Mapreduce来做的数据导入。

关于sqoop的原理

sqoop的原理比较简单,就是根据用户指定的sql或者字段参数,从数据库中读取数据导入到hive或者hdfs中。也支持基于数据库导出工具导出,不过受限于数据库的版本。

在导出的过程中,sqoop会自动切分mapreduce任务。比如某个字段的主键是从1到1000,那么当设置num-mappers为2时,第一个mr任务会读取1-500的数据,第二个mr任务会读取500-1000的数据。如果是字符串还有其他的划分方法.

关于架构

sqoop目前有两个大版本,第一个版本比较简单,只能使用命令行

第二个版本引入了sqoop server,统一处理连接等信息,并提供多种连接方式,还引入了权限控制,另外规范了连接的各项配置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12040830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存