将 MySQL 和 PostgreSQL 连接器添加到 Apache Spark 环境

Adding MySQL and PostgreSQL connectors to Apache Spark environment

在我的程序中,我需要 MySQL 和 PostgreSQL 连接器。 我已经下载了两个连接器,我可以 运行 一个一个地下载它们;当我尝试 运行 两个连接器时,我都失败了。

我 运行 只有 MySQL 连接器使用此命令:

./spark-submit --driver-class-path /home/mysql-connector-java-5.1.37-bin.jar --class learner.run.package --master local[8] --executor-memory 8G  /home/project_2.10-1.0.jar

当我想将 PostgreSQL 连接器添加到我的 class 路径时,我用 --jars 选项重新安排了我的命令:

./spark-submit --master local[8] --executor-memory 8G --class learner.run.package --driver-class-path --jars  /home/postgresql-9.4.1208.jre6.jar /home/mysql-connector-java-5.1.37-bin.jar /home/merve/Desktop/v1/target/scala-2.10/project_2.10-1.0.jar

但是它给了我这个错误:

java.lang.ClassNotFoundException: learner.run.package

我还尝试通过将以下行添加到 spark-env.sh 来将这些连接器添加到 spark class 路径:

SPARK_CLASSPATH= /home/mysql-connector-java-5.1.37-bin.jar

但找不到 MySQL 连接器。

最后我尝试了 .setJars() 选项,但它也没有用。

如何 运行 使用这两个连接器进行 spark-submit 或者如何将这些连接器添加到 class-path?

几个问题:

  • --driver-class-path要用标点符号隔开(:)
  • --jars 应该用逗号分隔 (,)
  • 两者都应该单独通过(你不能这样做--driver-class-path --jars some-path)。
spark-submit --driver-class-path some-path:another-path \
             --jars some-path,another-path
             ...