0

Spark 2.0.2 での作業 Spark-submit で正常に動作する jar があります。今、Spark JobServer から使用したいと思います。

最初の問題は、メソッドが次のことでした。

public SparkJobValidation validate(SparkContext sc, Config config) {
    return SparkJobValid$.MODULE$; 
}

@Override
public Object runJob(SparkContext jsc, Config jobConfig) {
//code
}

SparkSession の代わりに非推奨の SparkContext をパラメーターとして使用します。私の解決策は、次のことを行うことでした。

@Override
public Object runJob(SparkContext jsc, Config jobConfig) {
    SparkSession ss = SparkSession.builder()
            .sparkContext(jsc)
            .enableHiveSupport()
            .getOrCreate();

return ss.table("purchases").showString(20, true);
}

Hive がインストールされていません。Spark に付属の HiveSupport を使用しているだけで、hive-site.xml を $SPARK_HOME/conf の下に配置すると、spark-submit で動作します。

hive-site.xml

    <?xml version="1.0"?>
        <configuration>
         <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</value>
          <description>JDBC connect string for a JDBC metastore</description>
         </property>

         <property>
          <name>javax.jdo.option.ConnectionDriverName</name>
           <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>user</value>
      <description>username to use against metastore database</description>
    </property>

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>password</value>
      <description>password to use against metastore database</description>
    </property>

    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/spark-warehouse/</value>
      <description>Warehouse Location</description>
    </property>
    </configuration>

しかし、この構成ファイルから Spark JobServer のジョブとしてこの jar を実行すると、hive.metastore.warehouse.dirのみが取得されます。Hive metastore_db を読み取り/保存するために MySQL db との接続を確立しません。もちろん、デフォルト db のテーブルを表示することもできません。$SPARK_HOME/jars フォルダーに mysql-connector-java-5.1.40-bin.jar があります。

MySQL DB にある Hive metastore_db に接続するにはどうすればよいですか?

4

1 に答える 1