HiveServer 与 HiveServer2

今天在使用 hive --service hiveserver 命令启动 hiveserver 时出错了,hive版本1.2.0 ,错误信息如下:
-bash-4.1$ hive --service hiveserver -p 10002 &
Starting Hive Thrift Server
Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
 
原来 hiveserver 已经被 hiveserver2 取代了,详细可参考:
https://cwiki.apache.org/confluence/display/Hive/HiveServer
可以使用 $HIVE_HOME/bin/hiveserver2 或者 $HIVE_HOME/bin/hive --service hiveserver2 命令来启动HiveServer2
 
hiveserver 和 hiveserver2 在使用JDBC连接方面有两个不同的地方:
1.驱动类:org.apache.hadoop.hive.jdbc.HiveDriver  -->  org.apache.hive.jdbc.HiveDriver
2.URL:jdbc:hive://localhost:10000/default  -->  jdbc:hive2://localhost:10000/default
 
另外,使用hive jdbc时需要导入hive的jdbc驱动包,如果用Maven,那就请加入依赖
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>1.2.0</version>
</dependency>

你可能感兴趣的:(HiveServer 与 HiveServer2)