2015-02-12 6 views
2

Я хочу создать/получить доступ к таблицам улья из искры.Невозможно запросить таблицы улья из искры

Я разместил hive-site.xml внутри каталога spark/conf. Хотя он создает локальный метастор в каталоге, где я запускаю искровую оболочку и существует с ошибкой.

Я получаю эту ошибку, когда пытаюсь создать новую таблицу улья.

sqlContext.sql ("CREATE TABLE IF NOT EXISTS ЦСИ (ключ INT, значение STRING)")

Просьба предложить способ решения этой

15/02/12 10:35:58 ERROR RetryingHMSHandler: MetaException(message:file:/user/hive/warehouse/src is not a directory or unable to create one) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:1239) 
    at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_with_environment_context(HiveMetaStore.java:1294) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
+0

Пару вещей, которые вы могли бы попробовать. 1) убедитесь, что hasoop запущен. 'start-all.sh' и' jps' для подтверждения. 2) Возможно, вам сначала понадобится создать базу данных. Спарку не нравится стандартный db. – gobrewers14

ответ

2

я столкнулся с той же проблемой, и решить ее следующим образом:

  1. добавить улья каталог конф в spark-env.sh SPARK_CLASSPATH =/опт/апач улей-0.13.1-бен/конф

  2. Редактировать hdfs-сайт в каталоге hive conf путем добавления «hdfs: // master: 8020» в hive.metastore.warehouse.dir. Например: HDFS: // мастер: 8020/пользователь/улей/склад

+0

Это сработало для меня! Большое спасибо! Я фактически использовал sparkSQL, и он устанавливал это свойство по умолчанию, которое является «file:/user/hive/warehouse». Но мой пользователь, конечно, не имел прав на этот каталог. Поэтому я включил свойство java в скрипт искры при его запуске: -Dhive.metastore.warehouse.dir = hdfs: // hdfs_master_ip: hdfs_port/user/hive/warehouse –

1

я испытал подобную ошибку при запуске Спарк SQL на улей, и оказалось, что у текущего пользователя (в Mac OS) для искрового SQL делает не имеют права на запись в папку mac/user/hive/storage, которую Spark/Hive пытался каким-то образом создать (не уверен, почему, хотя мой метастар на mysql и файл данных в hdfs). ошибка исчезла после того, как я использую «Суд», чтобы начать Спарк оболочку, то есть,

бен> Судо ./spark-shell

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