當前位置:編程學習大全網 - 源碼下載 - eclipse可以 遠程測試hive嗎

eclipse可以 遠程測試hive嗎

eclipse可以 遠程測試hive

1. 安裝好hadoop框架

2. 安裝好hive並測試完成

3. 啟動hadoop

壹、 打開hiveserver2端口

二、新建java工程

三、測試鏈接

四、問題

五、壹點心得

壹、 打開hiveserver2端口

[html]?view plain?copy

hive?--service?hiveserver2?--hiveconf?hive.server2.thrift.port=10000?

或者?

hiveserver2?

#註意,打開成功後界面會卡住不動,但是從另外壹臺機器上登錄後可以看到其實端口已經打開。之所以光標閃爍是為了接下來顯示對Hive的每壹次操作日誌。?

二、新建java工程

需要導入的jar包:

[html]?view plain?copy

commons-logging-1.1.3.jar?

commons-collections-3.1.jar?

hive-exec-0.13.1.jar?

hive-jdbc-0.13.1.jar?

hive-metastore-0.13.1.jar?

hive-service-0.13.1.jar?

libfb303-0.9.0.jar?

log4j-1.2.16.jar?

slf4j-api-1.7.5.jar?

slf4j-log4j12-1.7.5.jar?

hadoop-common-2.4.0.jar</span>?

三、測試連接

測試程序代碼(Hql語句根據需要改寫):

[html]?view plain?copy

import?java.sql.Connection;?

import?java.sql.DriverManager;?

import?java.sql.ResultSet;?

import?java.sql.SQLException;?

import?java.sql.Statement;?

//?import?org.apache.hive.jdbc.HiveDriver;?

public?class?HiveJdbc?{?

private?static?String?driverName?=?"org.apache.hive.jdbc.HiveDriver";?

public?boolean?run()?{?

try?{?

Class.forName(driverName);?

Connection?con?=?null;?

//端口號默認為10000,根據實際情況修改;?

//用戶名:hive,密碼:hive?

con?=?DriverManager.getConnection(?

"jdbc:hive2://10.10.30.64:10000/default",?"hive",?"hive");?

Statement?stmt?=?con.createStatement();?

ResultSet?res?=?null;?

String?sql?=?"select?count(*)?from?testhive";?

System.out.println("Running:?"?+?sql);?

res?=?stmt.executeQuery(sql);?

System.out.println("ok");?

while?(res.next())?{?

System.out.println(res.getString(1));?

}?

return?true;?

}?catch?(Exception?e)?{?

e.printStackTrace();?

System.out.println("error");?

return?false;?

}?

}?

public?static?void?main(String[]?args)?throws?SQLException?{?

HiveJdbc?hiveJdbcClient?=?new?HiveJdbc();?

hiveJdbcClient.run();?

}?

}?

將程序在Hadoop上運行。

運行結果:

四、問題與解決

問題:

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hive

解決:

修改hadoop配置文件core-site.xml,添加如下:

[html]?view plain?copy

<property>?

<name>hadoop.proxyuser.hadoop.groups</name>?

<value>*</value>?

<description>Allow?the?superuser?oozie?to?impersonate?any?members?of?the?group?group1?and?group2</description>?

</property>?

<property>?

<name>hadoop.proxyuser.hadoop.hosts</name>?

<value>*</value>?

<description>The?superuser?can?connect?only?from?host1?and?host2?to?impersonate?a?user</description>?

</property>?

註:如果是root is not allowed to impersonate root , 上面的修改內容對應改為

[html]?view plain?copy

<property>?

<name>hadoop.proxyuser.root.groups</name>?

<value>*</value>?

<description>Allow?the?superuser?oozie?to?impersonate?any?members?of?the?group?group1?and?group2</description>?

</property>?

<property>?

<name>hadoop.proxyuser.root.hosts</name>?

<value>*</value>?

<description>The?superuser?can?connect?only?from?host1?and?host2?to?impersonate?a?user</description>?

</property>?

註意修改後需要重啟hadoop,再嘗試連接。

  • 上一篇:鄭州有什麽好的軟件公司
  • 下一篇:限制ip地址段訪問的php代碼
  • copyright 2024編程學習大全網