在 EMR 上安装 JDBC 驱动程序以供 Sqoop 使用的正确方法是什么?
What is the correct way of installing a JDBC driver on EMR for Sqoop to use?
我正在 运行在 AWS EMR 5.21.1 上使用 Sqoop 1.4.7 并尝试从数据库导入数据。我已经成功地手动执行此操作,我创建了一个通过 EMR 控制台安装了 Sqoop 的 EMR 实例。
以下是我为 运行 sqoop on EMR
执行的初步步骤
- 下载 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 bootstrap 脚本 运行 这些命令时,我得到了错误:
usr/lib/sqoop/lib/ No such file or directory
经过一番调查后,我意识到这是因为“Bootstrap 操作在核心服务(例如 Hadoop 或 Spark)安装之前执行”,发现 here
所以当我 运行 我的 bootstrap 步骤时 /usr/lib/sqoop/lib 目录不存在。
这里有一些可行的解决方案,但感觉像是变通办法
- 在我的 bootstrap 脚本中创建 /usr/lib/sqoop/lib 目录,然后将 jar 文件放入其中
- 将 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/"
我正在 运行在 AWS EMR 5.21.1 上使用 Sqoop 1.4.7 并尝试从数据库导入数据。我已经成功地手动执行此操作,我创建了一个通过 EMR 控制台安装了 Sqoop 的 EMR 实例。
以下是我为 运行 sqoop on EMR
执行的初步步骤- 下载 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 bootstrap 脚本 运行 这些命令时,我得到了错误:
usr/lib/sqoop/lib/ No such file or directory
经过一番调查后,我意识到这是因为“Bootstrap 操作在核心服务(例如 Hadoop 或 Spark)安装之前执行”,发现 here
所以当我 运行 我的 bootstrap 步骤时 /usr/lib/sqoop/lib 目录不存在。
这里有一些可行的解决方案,但感觉像是变通办法
- 在我的 bootstrap 脚本中创建 /usr/lib/sqoop/lib 目录,然后将 jar 文件放入其中
- 将 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/"