eclipse遠程連接hive


創建項目,添加jar包,hive的s上,所以也需要hadoop的一些jar

 

這個圖片是從網上找的,我直接使用的以前hadoop的項目
 
創建測試類,寫測試代碼
//獲取jdbc鏈接
private static Connection getConnection(){
Connection conn=null;
try {
//注冊驅動
Class.forName("org.apache.hive.jdbc.HiveDriver");
conn=DriverManager.getConnection("jdbc:hive2://node4:10000/default");
// jdbc:hive://localhost:10000/default
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
conn=getConnection();//獲取鏈接
sbSql.append("select * from ");
if(null!=conn){
try {
statement=conn.createStatement();
String tableName="student_1";
sbSql.append(tableName);
//執行sql
rSet=statement.executeQuery(sbSql.toString());
if(null!=rSet){
while(rSet.next()){
System.out.println(rSet.getString(3));
}
}

 

 
遇到的問題
1.
在使用eclipse鏈接hive時,總是報:不能夠打開一個連接,time out connection,這個是因為我服務器的防火牆沒關閉
 
2.報一下錯誤,需要配置hadoop-core.xml文件
Caused by: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): Unauthorized connection for super-user: root from IP 192.168.177.124
添加如下配置
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
3:
No suitable driver found for jdbc:hive://node4:10000/default
這個異常是因為連接的uri導致的:
在1.2以上的版本使用
//注冊驅動
Class.forName("org.apache.hive.jdbc.HiveDriver");
conn=DriverManager.getConnection("jdbc:hive2://node4:10000/default");
在1.2以下的版本使用
//注冊驅動
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
conn=DriverManager.getConnection("jdbc:hive://node4:10000/default");
4:有點需要注意的是這個鏈接的是hive,並不是mysql,所以在鏈接的uri里鏈接的是 default
 
5:這個異常是因為,在不安全的模式中啟動hive,   hive.metastore.execute.setugi這個屬性設置為true將導致metastore執行DFS操作使用據客戶的用戶和組權限
java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=anonymous, access=WRITE, inode="/opt/hive/warehouse":root:supergroup:drwxr-xr-x
所以
    一種 是修改hive-site.xml配置文件
<property>
<name>hive.metastore.execute.setugi</name>
<value>false</value>
<description>
在不安全的模式中,將這個屬性設置為true將導致metastore執行DFS操作使用
據客戶的用戶和組權限。請注意,這個屬性必須設置
客戶端和服務器端。進一步指出,最好的努力。
如果客戶端將其設置為真,服務器將它設置為false,客戶端設置將被忽略。
</description>
      是,使用安全模式啟動hive 
 
 
6:在創建表的時候,如果有定義分區,要先定義分區,否則就會拋出異常
FAILED: ParseException line 1:164 cannot recognize input near 'partitioned' '(' 'sexual' in serde properties specification
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM