如何从HDFS中的不同数据库中导入数据

时间:2019-07-09 08:49:50

标签: hdfs sqoop

$cat > import.txt
    import
    --connect
    jdbc:mysql://localhost/hadoopdb
    --username
    hadoop
    -password
    abc

在一个txt文件中,我已将jdbc url,用户名和密码保存在一个文本文件中,当我调用sqoop命令时,我将其调用如下:

sqoop --options-file /user/cloudera/import.txt --table employee

但是我想从多个数据库导入HDFS。我应该如何对多个数据库使用相同的方法? 我尝试搜索相同的内容,但是却没有得到任何适当的资源。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

我通过编写带有多个sqoop语句的shell脚本来完成此任务。每个作业一个sqoop语句。您可以让Shell脚本中的每个语句引用它自己的选项文件。

答案 1 :(得分:0)

您可以通过参数化每个字段(例如, 进口     -连接     jdbc:mysql:// localhost / hadoopdb
     - 用户名     hadoop
    -密码
    abc

-连接     $(连接字符串)      - 用户名     $(用户名)     -密码文件     (密码文件路径)      - 表     $(表名)

然后在job.properties文件中分配每个变量的值,然后通过Oozie命令运行它: oozie job -oozie http://XXXX.XX.iroot.adidom.com:XXXX/oozie -config job.properties -run 您也可以通过coordinator.xml安排它

谢谢