2017-01-15 4 views
0

Я пытаюсь разоблачить свои таблицы spark-sql через JDBC через triftserver, но, хотя похоже, что я успешно подключен, он не работает. Вот что я пробовал до сих пор.таблицы, доступные в CLI Spark-SQL, недоступны по сравнению с triftserver

Настройка базы данных:

  • в pyspark Я загрузил паркетную файл, созданный вид Темп как tableX
  • выполнил .saveAsTable, как hive_tableX
  • затем спросил я эту таблицу: spark.sql("SELECT * FROM hive_tableX LIMIT 1").show(), возвращающей некоторые данные
  • в этот момент, мой код сохраняет информацию о таблице в hivestore, не так ли?

запрашивая от искрового-SQL:

  • Я побежал spark-sql и искра SQL оболочка пущена
  • USE default
  • show tables; -> я вижу мой стол там, hive_tableX
  • SELECT * FROM hive_tableX LIMIT 1 и я вижу некоторые успешные результаты.
  • таким образом, я верю, что теперь проверено, что мой стол сохранен в метафоре улья, не так ли?

тогда я включаю thriftserver

  • ./sbin/start-thriftserver.sh

рядом, я включаю Билайна, так что я могу проверить соединение thriftserver

  • !connect jdbc:hive2://localhost:10000 (а го ввести имя пользователя и пароль)
  • тогда я выбираю дб по умолчанию: use default;
  • и show tables; -> там ничего нет.

Итак, где мои таблицы? beeline или бережливость, указывающая на другой склад или что-то еще?

Edit: Я думаю, что мой thriftserver не использует правильный каталог хранилища, так что я пытаюсь запустить его с опцией конфигурации:

  • [еще ничего] SBIN/start-thriftserver.sh --hiveconf spark.sql.warehouse.dir =/код/​​искра/бережливость/искровой склад
  • [все еще ничего] sbin/start-thriftserver.sh --conf spark.sql.warehouse.dir =/код/​​искра/бережливость/искрового склад

Edit: запустить его в том же физическом каталоге, где было создано wherehouse, кажется, сделать трюк. Хотя, я не знаю, как программно установить путь к чему-то другому и запустить его в другом месте.

+0

BTW, вы можете непосредственно выбрать/создать на паркет 'SELECT * FROM паркет. \' Паркет/файл/местоположение \ 'LIMIT 1'. – mrsrinivas

+0

попробуйте аутентифицировать бережливого сервера тот же пользователь, с которого запущена искровая оболочка/sql. Если пользователь ** искра **, то строка соединения: '! Connect jdbc: hive2: // localhost: 10000 spark spark' – mrsrinivas

+0

Проблема заключалась в том, что я начинал бережливый сервер в другом каталоге, располагается. Теперь мне нужно знать, как на самом деле передавать этот путь, а не физически находиться в этом каталоге – Kristian

ответ

0

Решение этой проблемы состояло в том, что я начал бережливость из другого каталога, кроме spark-wherehouse и metastore_db.

Как только я начал его с правильного каталога, он работал как ожидалось, и теперь мои таблицы были доступны.

+1

Использование ** удаленной базы данных для мета-магазина ** - это еще одно решение. Я мог бы подумать, что одна проблема с схемой в локальном файле, если случайно, если файл мета-магазина поврежден, мы потеряем всю схему искровых таблиц. – mrsrinivas

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