2015-07-10 6 views
2

Я запускаю CDH 5.4.4 (который связывает Spark 1.3.0) и хотел бы прочитать таблицу Hive в фреймворк Spark.как запросить улей от Spark на CDH 5.4.4

Глядя на документации, это говорит о том, что мы можем сделать следующее:

from pyspark.sql import HiveContext 
sqlContext = HiveContext(sc) 
results = sqlContext.sql("SHOW TABLES").collect() 

... при условии, что Спарк был построен с -Phive и -Phive-thriftserver флагами.

Я не уверен, что в сборке Cloudera установлены эти флаги.

Когда я бегу сниппет, он возвращает следующую ошибку:

15/07/10 16:54:10 WARN HiveMetaStore: Retrying creating default database after error: Error creating transactional connection factory 
    javax.jdo.JDOFatalInternalException: Error creating transactional connection factory 

У меня есть два вопроса:

  1. делает искрообразование Cloudera имеют в hive и hive-thriftserver флаги установлены?
  2. Что мне нужно сделать, чтобы запросить улей от искры?

Update

Это почти работает:

Я создал символическую ссылку из $SPARK_HOME/conf/ в hive-site.xml, т.е.

ln -s /etc/hive/conf.cloudera.hive/hive-site.xml $SPARK_HOME/conf/hive-site.xml 

Затем я перезапустил службу Spark, и был в состоянии получить доступ к Улей , К сожалению, символическая ссылка не выдержала перезагрузки.

+0

Не уверен, если это поможет вам, но ваш код работает для меня на Amazon EMR из коробки ... так что одним из вариантов было бы использовать EMR? Также, возможно, проверьте, что «результаты» определенно не создавались - для меня, когда я запускал команду, у меня все еще появились сообщения об ошибках, и все же правильный результат все еще был создан. – maxymoo

+0

Спасибо @maxymoo. Отрадно слышать, что он работает на AWS. В этом случае у меня много данных, поэтому было бы дорого и много времени, чтобы переместить его в AWS. Кроме того, сделав инвестиции в собственное оборудование, было бы собственной целью запустить счет AWS. Цените мысль/предложение. –

+0

не беспокоится, и рад, что вы приближаетесь. что вы имеете в виду «не переживает перезагрузки»? вы пытались поместить эту строку в свой '.bash_profile'? – maxymoo

ответ

0

копия улья site.xml из улья конф искры conf.dist, как показано ниже,

sudo cp /etc/impala/conf.dist/hive-site.xml /etc/spark/conf.dist/ 

теперь попробуйте вы в состоянии прочитать данные из улья pyspark

Смежные вопросы