Работа с Spark 2.0.2 У меня есть банка, которая отлично работает с spark-submit. Теперь я хочу использовать его с Spark JobServer.Использование Spark JobServer искры не использует настроенное соединение mysql на hive-site.xml
Первая проблема заключалась в том, что методы:
public SparkJobValidation validate(SparkContext sc, Config config) {
return SparkJobValid$.MODULE$;
}
@Override
public Object runJob(SparkContext jsc, Config jobConfig) {
//code
}
У устаревшее SparkContext вместо SparkSession в качестве параметра. Мое решение было сделать следующее:
@Override
public Object runJob(SparkContext jsc, Config jobConfig) {
SparkSession ss = SparkSession.builder()
.sparkContext(jsc)
.enableHiveSupport()
.getOrCreate();
return ss.table("purchases").showString(20, true);
}
У меня не установлен улей, я только с помощью HiveSupport, который приходит с искрой, и я поставил улей-site.xml под $ SPARK_HOME/конф и что работает с искрой -Отправить.
улья 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>
Но когда я исполняю эту баночку, как работа с Спарк JobServer из этого конфигурационного файла только принимает hive.metastore.warehouse.dir. Не делает никакой связи с MySQL db для чтения/сохранения Hive metastore_db, и, конечно же, он не может видеть таблицы по умолчанию db. У меня есть mysql-connector-java-5.1.40-bin.jar в папке SPARK_HOME/jars.
Что я могу сделать, чтобы подключиться к Hive metastore_db, расположенному в моей базе данных MySQL?
Вы хотите прочитать из локальной файловой системы или hdfs? Насколько я знаю, вам нужно написать 'файл: /// data/spark-warehouse /' для локальной файловой системы и 'hdfs: // host: port/data/spark-warehouse /' для hdfs. –
@SimonSchiff Я хочу прочитать из локального файла, я беру ваше предложение и все еще терпеть неудачу. – Jose