如何解决在EMR上安装JDBC驱动程序以供Sqoop使用的正确方法是什么?
我正在AWS EMR 5.21.1上运行Sqoop 1.4.7,并试图从数据库导入数据。在通过EMR控制台安装Sqoop的EMR实例中,我已经能够成功手动完成此操作。
这是我为了在EMR上运行sqoop而执行的初步步骤
- 下载JDBC驱动程序
- 将JDBC驱动程序移至/ usr / lib / sqoop / lib目录
使用以下命令将我sshd到EMR集群后,我能够成功运行sqoop导入:
wget -O mssql-jdbc.jar https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/8.4.0.jre8/mssql-jdbc-8.4.0.jre8.jar
sudo mv mssql-jdbc.jar /usr/lib/sqoop/lib/
当我尝试从EMR引导脚本运行这些命令时,却收到错误消息:
usr/lib/sqoop/lib/ No such file or directory
进行调查后,我意识到这是因为“引导程序操作在安装诸如Hadoop或Spark的核心服务之前执行”,如here
因此,当我运行引导步骤时,/ usr / lib / sqoop / lib目录不存在。
这里有一些可行的解决方案,但感觉像是变通方法
- 在我的引导脚本中创建/ usr / lib / sqoop / lib目录,然后将jar放入其中
- 将罐子添加到此目录作为EMR步骤。 (结果证明这是正确的方法,请看下面可接受的答案)
在EMR上安装此JDBC驱动程序的正确方法是什么?
解决方法
第二个选项是正确的方法。 documentation解释了如何运行bash脚本作为EMR步骤。
您还可以使用jar command-runner.jar和要使用的参数
bash -c "wget -O mssql-jdbc.jar https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/8.4.0.jre8/mssql-jdbc-8.4.0.jre8.jar;sudo mv mssql-jdbc.jar /usr/lib/sqoop/lib/"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。