前言
小编最近的项目涉及到与大数据平台的对接,少不了要去操作Hadoop 下的Hive 数据仓库,下面来记录下操作过程。
正文
1、下载DbVisualizer ( 数据库可视化工具)、安装
点此进入下载页面 (我下载的Mac 版)
2、连接hive地址
hive 服务器地址:url
端口号:port
选择驱动类型为hive:
3、hive 驱动 需要的jar包(hive-1.2.1)
说明: hive version是1.2.1 ,所以hive-jdbc的version也是1.2.1 ,其他的依赖包也是不能少的,当hive版本发生变化,相应的驱动需要的依赖包的版本也是要对应的更新版本,少了某些必要的依赖包的时候会报错,看错误信息就知道少啥添上就可以了!
4、遇到问题
小编在初次尝试连接Hive Server的时候各种报错,因为版本的原因缺少各种依赖包,找到添加上才一步步连接成功。
下面是一个错误信息:
An error occurred while establishing the connection:
Details:
Type: java.lang.reflect.UndeclaredThrowableException
Stack Trace:
java.lang.ClassNotFoundException: org.apache.http.client.HttpClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[wrapped] java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
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:498)
at com.onseven.dbvis.g.B.D.ā(Z:1548)
at com.onseven.dbvis.g.B.F$A.call(Z:1369)
[wrapped] java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
at com.onseven.dbvis.g.B.F$A.call(Z:2374)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[wrapped] java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy2.connect(Unknown Source)
at com.onseven.dbvis.db.I.H.Ŋ(Z:154)
at com.onseven.dbvis.db.I.H.Ĵ(Z:1692)
at com.onseven.dbvis.db.I.K.Ĵ(Z:3063)
at com.onseven.dbvis.db.I.D.Ī(Z:1756)
at com.onseven.dbvis.K.C.Z.Ģ(Z:2713)
at com.onseven.dbvis.K.C.K.Ă(Z:1374)
at com.onseven.dbvis.K.C.K.doInBackground(Z:1521)
at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at javax.swing.SwingWorker.run(SwingWorker.java:334)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
错误信息中表示缺少httpclient ,所以下载合适的版本,重新加载驱动就可以了,遇到问题看日志,什么问题解决问题。
#总结
感谢您的阅读,希望对您有帮助!在试错中成长!