Как подключить Pentaho 6.0 к Hadoop-Hive

Я пытаюсь подключить Pentaho к Hive, чтобы можно было выполнять запросы Hive через Pentaho. Я установил Pentaho 6.0 на свою Windows 7 (Professional 64bit). Я настроил Hadoop на «Bare metal server». Детали системы Hadoop следующие:

  1. Apache Hadoop версии 2.6
  2. Улей v 1.1
  3. ПРЯЖА

Я попытался подключиться к Pentaho, используя тип подключения: Hadoop-Hive 2, имя базы данных: по умолчанию и номер порта: 10000. Я добавил jar-файл Hive JDBC по этой веб-ссылке: http://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/1.1.0. В конце, когда я пытаюсь подключиться, я получаю следующие ошибки:

Error connecting to database [Hive_connect] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Iface

org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Error connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Iface

at org.pentaho.di.core.database.Database.normalConnect(Database.java:459)
at org.pentaho.di.core.database.Database.connect(Database.java:357)
at org.pentaho.di.core.database.Database.connect(Database.java:328)
at org.pentaho.di.core.database.Database.connect(Database.java:318)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2734)
at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:588)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)
at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:136)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:389)
at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:318)
at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:116)
at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:60)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:470)
at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.newConnection(SpoonDBDelegate.java:457)
at org.pentaho.di.ui.spoon.Spoon.newConnection(Spoon.java:8750)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
at org.pentaho.ui.xul.jface.tags.JfaceMenuitem.access$100(JfaceMenuitem.java:43)
at org.pentaho.ui.xul.jface.tags.JfaceMenuitem$1.run(JfaceMenuitem.java:106)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1339)
at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7939)
at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9214)
at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:653)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Error connecting to database: (using class org.apache.hive.jdbc.HiveDriver)
org/apache/hive/service/cli/thrift/TCLIService$Iface
at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:574)
at org.pentaho.di.core.database.Database.normalConnect(Database.java:443)
... 55 more
Caused by: java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService$Iface
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:554)
    ... 56 more
Caused by: java.lang.ClassNotFoundException: org.apache.hive.service.cli.thrift.TCLIService$Iface
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 60 more

person Suraj    schedule 21.12.2015    source источник


Ответы (1)


Для Hive должен быть драйвер JDBC, и вы можете использовать его для подключения Penthao к вашему хранилищу Hive. Это должно быть так просто, как зарегистрировать новый экземпляр базы данных. Взгляните на эту ссылку: HiveClient

  1. Получите драйвер JDBC для Hive, если он недоступен
  2. Следуйте инструкциям по установке драйвера JDBC. Описание Penthao
  3. Настройте новое подключение к базе данных Hive
person ZeusNet    schedule 21.12.2015
comment
Ммм, я могу открыть ссылку. Может быть, вам подходит этот: cwiki.apache.org/confluence/display/Hive / HiveServer2 + клиенты - person ZeusNet; 21.12.2015
comment
Я перешел по ссылке, но не знаю, что именно нужно делать? - person Suraj; 21.12.2015
comment
Вы уже зарегистрировали базу данных через JDBC в своей среде Penthao? Это должна быть такая же процедура с драйвером Hive JDBC. Вы также можете посмотреть описание Penthao для создания соединения Hive: wiki.pentaho.com/display/BAD/Create+Hive+Database+Connection - person ZeusNet; 21.12.2015
comment
Пробовал, но получаю ошибку ниже. Ошибка подключения к базе данных [HiveDB]: org.pentaho.di.core.exception.KettleDatabaseException: Ошибка при попытке подключения к базе данных Ошибка подключения к базе данных: (с использованием класса org.apache.hive.jdbc.HiveDriver) Невозможно загрузить Драйвер JDBC Hive Server 2 для текущей активной конфигурации Hadoop - person Suraj; 21.12.2015
comment
Вам не хватает драйвера JDBC. В вашей установке Penthao должна быть папка lib или что-то подобное. Там вы должны сохранить файл jar драйвера JDBC. Вы можете найти эту банку здесь: mvnrepository.com/artifact/org.apache.hive / hive-jdbc - person ZeusNet; 21.12.2015
comment
Я загрузил файл Jar в lib. У меня появилась новая ошибка, как показано ниже. Ошибка подключения к базе данных [Fact_Hadoop]: org.pentaho.di.core.exception.KettleDatabaseException: Ошибка при попытке подключения к базе данных Ошибка подключения к базе данных: (с использованием класса org.apache.hive.jdbc.HiveDriver) org / apache / hive / service / cli / thrift / TCLIService $ Iface org.pentaho.di.core.exception.KettleDatabaseException: ошибка при попытке подключения к базе данных Ошибка подключения к базе данных: (с использованием класса org.apache.hive.jdbc.HiveDriver ) org / apache / hive / service / cli / thrift / TCLIService $ Iface - person Suraj; 21.12.2015
comment
Не могли бы вы добавить исключение дыр в качестве правки к вашему вопросу? А также используемый URL-адрес jdbc может помочь избавиться от этой проблемы. - person ZeusNet; 21.12.2015
comment
Я хотел бы знать URL-адрес jdbc, который используется для регистрации базы данных в вашей установке pdi. Что-то вроде: jdbc: hive2: // ‹host1›: ‹port1› / databaseName или, может быть, вы можете сказать мне, что вы использовали в качестве имени хоста, имени БД и номера порта в мастере регистрации - person ZeusNet; 21.12.2015
comment
Порт: 10000 Имя базы данных: по умолчанию - person Suraj; 21.12.2015
comment
Возможно, вы использовали другой порт в своем файле hive_conf.xml? - person ZeusNet; 21.12.2015
comment
Где найти этот файл? можешь дать мне какой-нибудь намек? - person Suraj; 21.12.2015
comment
на моей машине (Linux) этот файл находится в / etc / hive / conf / и называется hive-site.xml - person ZeusNet; 21.12.2015
comment
куда вы положили файл jar, который вы скачали? - person ZeusNet; 21.12.2015
comment
Я поместил этот файл jar в pentaho lib. - person Suraj; 21.12.2015
comment
Сообщение об ошибке предполагает, что класс не найден. Но если вы положите его в нужное место, я не знаю, почему он не может его найти. Вы также перезапустили PDI (чайник и ложку)? - person ZeusNet; 21.12.2015
comment
Конфиг. в hive-site.xml ‹configuration› ‹property› ‹name› javax.jdo.option.ConnectionURL ‹/name› ‹value› jdbc: derby: // master: 1527 / metastore_db; create = true ‹/value› ‹описание ›Строка подключения JDBC для хранилища метаданных JDBC ‹/description› ‹/property› ‹property› ‹name› javax.jdo.option.ConnectionDriverName ‹/name› ‹value› org.apache.derby.jdbc.ClientDriver ‹/value›‹ description ›Имя класса драйвера для хранилища метаданных JDBC ‹/description› ‹/property› ‹property› ‹name› hive.exec.compress.output ‹/name› ‹value› true ‹/value› ‹description› Свойство сжатия вывода Работа ‹/description› ‹/property› - person Suraj; 21.12.2015
comment
‹Property› ‹name› hive.exec.compress.intermediate ‹/name› ‹value› true ‹/value› ‹description› Свойство сжатия вывода карты для редукторов ‹/description› ‹/property› ‹/configuration› - person Suraj; 21.12.2015
comment
Да, я перезапускал ложку несколько раз - person Suraj; 21.12.2015
comment
Таким образом, проблема не связана с портом, потому что вы не установили его, а значение по умолчанию - 10000. Что-то с вашим драйвером jdbc может быть неправильно. Может быть, не тот каталог или что-то в этом роде. как это. - person ZeusNet; 21.12.2015
comment
Как упоминалось в одной ссылке сверху, вы должны поместить файл jar в: для сервера интеграции данных: / pentaho / server / data-integration-server / tomcat / webapps / pentaho-di / WEB-INF / lib / и для интеграции данных клиент: / pentaho / инструменты проектирования / интеграция данных / libext / JDBC / - person ZeusNet; 21.12.2015
comment
Я установил Pentaho 6.0.1 ... Я не уверен, о каком сервере интеграции данных вы говорите? - person Suraj; 21.12.2015
comment
Вы ведь используете PDI? Существует клиентская программа под названием ложка, а также серверный компонент под названием чайник. Чайник - это сервер интеграции данных. Я не могу дать вам дальнейших советов, не увидев вашу установку и т. Д. - person ZeusNet; 22.12.2015
comment
Я скачал pentaho 6.0.1 по этой ссылке sourceforge.net/projects/pentaho/files/Data%20Integration/6.0/ Я получил zip-файл, распаковал его и начал используя pentaho 6.0.1 ... - person Suraj; 22.12.2015
comment
Как выглядит ваша структура папок? У вас есть server и subdir design_tools или их нет. Не могли бы вы ответить на этот вопрос в этой структуре папок? Для меня похоже, что файл jar отсутствует в любой момент - person ZeusNet; 23.12.2015
comment
Привет, извини, я задерживаю ответ. У меня нет сервера и подкаталога design_tools. Существуют и другие папки, а именно: классы, Data Integration.app, драйвер JDBC службы данных, docs, launcher, lib, libswt, plugins, pwd, samples, simple-jndi, system, ui и т. Д. - person Suraj; 24.12.2015
comment
Какие файлы jar находятся в папке драйвера JDBC? - person ZeusNet; 24.12.2015
comment
нет файлов jar, но есть один zip-файл в папке драйвера JDBC. Имя zip-файла: - pdi-dataservice-client-plugin-assembly-6.0.1.0-386.zip он содержит следующие файлы jar: commons-codec-1.5.jar, commons-httpclient-3.1.jar, commons-lang-2.6. .jar, commons-logging-1.1.1.jar, commons-vfs2-2.1-20150824.jar, чайник-core-6.0.1.0-386.jar, чайник-двигатель-6.0.1.0-386.jar, log4j-1.2 .16.jar, pdi-dataservice-client-plugin-6.0.1.0-386.jar, scannotation-1.0.2.jar - person Suraj; 24.12.2015