获取HiveConnection,及重现获取过程中的某些问题。

来源:互联网 发布:淘宝服务市场怎么投诉 编辑:程序博客网 时间:2024/06/10 23:45

文章来源:https://my.oschina.net/gently/blog/683604

一:未创建Maven工程,所需jar包都是自己一一找的,结果碰到许多缺包问题,最后我的lib下包为:

 

二:尝试获取HiveConnection,先附上成功获取HiveConnection的代码:

public class Test01Hive {private static String driverName = "org.apache.hive.jdbc.HiveDriver";  private static String url = "jdbc:hive2://master:10000/default";  private static String user = "hive";  private static String password = "xujun";  public static void main(String[] args) throws Exception {  Class.forName(driverName);  Connection conn = DriverManager.getConnection(url, user, password);  // org.apache.hive.jdbc.HiveConnection@ebe538System.out.println(   conn );}  }

 

问题重现1:

开始定义的 url = "jdbc:hive://master:10000/default";  结果报如下错误:

java.sql.SQLException: No suitable driver found for jdbc:hive://master:10000/default
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at com.berg.hive.test1.api.Test01Hive.getConn(Test01Hive.java:50)
    at com.berg.hive.test1.api.Test01Hive.main(Test01Hive.java:37)

问题1解决:

将url更改为: url = "jdbc:hive2://master:10000/default";  

问题1解决思路来源:

http://stackoverflow.com/questions/33722139/java-sql-sqlexception-no-suitable-driver-found-for-jdbchive-localhost10000  

 

问题重现2:

org.apache.hive.service.cli.HiveSQLException: Failed to open new session:
java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException
(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to  impersonate hive
    at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:258)
    at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:249)
    at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:579)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:167)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at com.berg.hive.test1.api.Test01Hive.getConn(Test01Hive.java:50)
    at com.berg.hive.test1.api.Test01Hive.main(Test01Hive.java:38)
Caused by: org.apache.hive.service.cli.HiveSQLException: Failed to open new session:
java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException
(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to
impersonate hive

问题2解决:进入hadoop安装目录下,然后切换至etc/hadoop即hadoop-2.6.4/etc/hadoop,修改core-site.xml中文件内容,在原文件内容中添加:

    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>                                               
        <value>*</value>
    </property>

    <property>
            <name>hadoop.proxyuser.hadoop.groups</name>
            <value>*</value>
    </property>

我的修改后是:

<configuration><property>         <name>fs.defaultFS</name>         <value>hdfs://master:9000</value>     </property>     <property>         <name>hadoop.tmp.dir</name>         <value>file:/mysoftware/hadoop-2.6.4/tmp</value>    </property>    <property>        <name>hadoop.native.lib</name>        <value>false</value>    </property><property><name>hadoop.proxyuser.hadoop.hosts</name>                                                       <value>*</value></property><property>        <name>hadoop.proxyuser.hadoop.groups</name>        <value>*</value></property></configuration>

问题2思路解决来源:
http://stackoverflow.com/questions/16582126/getting-e0902-exception-occured-user-oozie-is-not-allowed-to-impersonate-ooz

 

另外几个链接:

1. 重启mysql服务:

http://wwwlouxuemingcom.blog.163.com/blog/static/209747822013411103950266/

2. Could not open connection to jdbc

http://stackoverflow.com/questions/31150678/java-sql-sqlexception-could-not-open-connection-to-jdbchive2-localhost10000

3.Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

http://stackoverflow.com/questions/35449274/java-lang-runtimeexception-unable-to-instantiate-org-apache-hadoop-hive-ql-meta

 

....................

阅读全文
0 0
原创粉丝点击