При запуске приложений scala через Livy в кластере HD Insight, sqlContext, который я создаю в своем приложении, похоже, не учитывает метастабильность улья. Он бросает «таблица не найдена» исключение при выполнении некоторойРаботы Scala, отправленные через Livy в HDInsight, не видят метастор
sqlContext.sql("SELECT * FROM table LIMIT 1").collect.foreach(println)
Однако, когда делает то же самое в свече скорлупе, она отлично работает.
Должен ли я указать какую-либо собственность где-нибудь?
Я думал, что это может быть доступ к разрешению, поэтому я попытался указать пользователю олицетворять использование параметра proxyUser, но он не учитывал ни того, ни другого.
Вот я посылаю JSON в Ливия:
{ "file":"wasb://[email protected]", "className":"com.server.MyClass" }
Вот как я создаю как SC и sqlContext переменное:
val conf = new SparkConf().setAppName("MyApp")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
Спасибо, это сработало. Однако мне нужно, чтобы он был настроен таким образом при создании кластера. Есть ли способ сделать это? –
Чтобы автоматизировать изменение при создании кластера, я создал sh-файл со следующей командой: sed -i -s | export SPARK_DIST_CLASSPATH = $ SPARK_DIST_CLASSPATH:/usr/hdp/current/spark-client/lib/\ *:/usr/lib/hdinsight-datalake/\ *:/usr/hdp/current/spark-client/conf/hive-site.xml | export SPARK_DIST_CLASSPATH = $ SPARK_DIST_CLASSPATH:/usr/hdp/current/spark-client/lib/\ *:/usr/lib/hdinsight-datalake/\ *:/usr/hdp/current/spark-client/conf | g '/etc/spark/conf/spark-env.sh и добавить запись сценария действия в руку шаблон. –