将Hive连接到SpagoBI:org.eclipse.birt.report.data.oda.jdbc.JDBCException:没有合适的驱动程序

时间:2014-07-07 09:54:43

标签: hive

我正在尝试将spagoBI工作室连接到hive。 但是当我尝试为hive服务器添加数据源时,我在测试连接时遇到了以下异常。

  

org.eclipse.birt.report.data.oda.jdbc.JDBCException:没有合适的驱动程序。                   在org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.testConnection(JDBCDriverManager.java:729)                   在org.eclipse.birt.report.data.oda.jdbc.ui.util.DriverLoader.testConnection(DriverLoader.java:147)                   在org.eclipse.birt.report.data.oda.jdbc.ui.util.DriverLoader.testConnection(DriverLoader.java:138)                   在org.eclipse.birt.report.data.oda.hive.ui.profile.HiveSelectionPageHelper.testConnection(HiveSelectionPageHelper.java:404)                   在org.eclipse.birt.report.data.oda.hive.ui.profile.HiveSelectionPageHelper.access $ 4(HiveSelectionPageHelper.java:392)                   在org.eclipse.birt.report.data.oda.hive.ui.profile.HiveSelectionPageHelper $ 2.widgetSelected(HiveSelectionPageHelper.java:333)                   at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)                   在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)                   在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)                   在org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)                   在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)                   在org.eclipse.jface.window.Window.runEventLoop(Window.java:825)                   在org.eclipse.jface.window.Window.open(Window.java:801)                   在org.eclipse.birt.report.designer.data.ui.actions.NewDataSourceAction.run(NewDataSourceAction.java:126)                   在org.eclipse.jface.action.Action.runWithEvent(Action.java:498)                   at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)                   at org.eclipse.jface.action.ActionContributionItem.access $ 2(ActionContributionItem.java:501)                   at org.eclipse.jface.action.ActionContributionItem $ 5.handleEvent(ActionContributionItem.java:411)                   在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)                   在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)                   在org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)                   在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)                   在org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)                   在org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)                   在org.eclipse.ui.internal.Workbench.access $ 4(Workbench.java:2438)                   在org.eclipse.ui.internal.Workbench $ 7.run(Workbench.java:671)                   在org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)                   在org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)                   在org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)                   在org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)                   在org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)                   在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)                   在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)                   在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)                   在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)                   at java.lang.reflect.Method.invoke(Unknown Source)                   在org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)                   在org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)                   在org.eclipse.equinox.launcher.Main.run(Main.java:1408)                   在org.eclipse.equinox.launcher.Main.main(Main.java:1384)

请帮助。

1 个答案:

答案 0 :(得分:0)

在创建连接时在连接配置文件中创建数据库连接“ GenericJDBC ”,然后单击“下一步”。 提供常规标签中的所有详细信息,然后点击添加广告上方的三角形: - 蜂房JDBC, 蜂房EXEC, 蜂房metastore, 蜂巢式服务, libfb, libthrift, 蜂房常见, 共享记录, slf4j.api, Hadoop的核心, Hadoop的通用, Hadoop的thriftfs, 公地CLI, log4j的, 番石榴, 公共的集合, 公共的配置, Hadoop的身份验证, Hadoop的HDFS

我没有提到罐子的版本,因为我不知道你使用哪些罐子。 您可能需要查看您的hadoop和hive版本以找到上述罐子的版本。 在proerties标签中提供适用的所有细节。

要选择驱动程序,请在属性选项卡中,单击“驱动程序”选项旁边带有3个点(...)的按钮,然后转到“浏览类”选项。 它将显示罐子列表中的所有可用驱动程序。 从那里,根据您使用的hiveserver的版本,选择相应的驱动程序。 对于hive2: - 选择“ org.apache.hive.jdbc.HiveDriver ”。 否则: - 选择“ org.apache.hadoop.hive.jdbc.HiveDriver

然后单击“确定”和“测试连接”。

我希望它有所帮助。