2016-06-03 4 views
0

При запуске приложений 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) 

ответ

0

Существует обходной путь для этой проблемы. Перейдите в Ambari и измените конфигурацию SPARK. https://<cluster endpoint>/#/main/services/SPARK/configs

Expand Расширенный искровой-ENV, измените строку, которая содержит SPARK_DIST_CLASSPATH к:

export SPARK_DIST_CLASSPATH=$SPARK_DIST_CLASSPATH:/usr/hdp/current/spark-client/lib/*:/usr/lib/hdinsight-datalake/*:/usr/hdp/current/spark-client/conf 
+0

Спасибо, это сработало. Однако мне нужно, чтобы он был настроен таким образом при создании кластера. Есть ли способ сделать это? –

+0

Чтобы автоматизировать изменение при создании кластера, я создал 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 и добавить запись сценария действия в руку шаблон. –