Hplsql報錯:...HiveSQLExpection:Error while compiling statement:No privilege 'Select' found for inputs {.....}


實踐hplsql時,遇到的問題總結一下,若有不對的地方,歡迎交流。

 


 

一、Hplsql簡介

  hplsql的介紹詳見:http://lxw1234.com/archives/2015/09/492.htm

 

二、hpsql的配置文件為hplsql-site.xml

  2.1 常見的選項列表:

hplsql.conn.default 指定默認的連接配置文件,默認值為hive2conn
hplsql.conn.hive2conn  指定HiveServer2JDBC連接
hplsql.conn.init.hive2conn

定義執行SQL語句連接后執行hive2conn 的一些默認設置,如:set system:user.name=mr;

set hive.execution.engine=mr(mr為MapReduce,也可以設置為spark);

hplsql.conn.convert.hive2conn 定義是否對即時SQL轉換已啟用hive2conn,默認為true
hplsql.conn.mysqlconn     指定MySQL數據庫的連接配置文件

  2.2 對hplsql-site.xml配置

編輯hplsql-site.xml

修改或添加以下變量:

<property>

<name>hplsql.conn.default</name>

<value>hive2conn</value>

<description>The default connection profile</description>

</property>

<property>

<name>hplsql.conn.init.hive2conn</name>

<value>set system:user.name=mr;set hive.execution.engine=mr</value>

</property>

<property>

<name>hplsql.conn.hive2conn</name>

<value>org.apache.hive.jdbc.HiveDriver;jdbc:hive2://IPAddress:10000;username;password</value>

<description>HiveServer2 JDBC connection</description>

</property>

三、執行報錯

  1)使用hplsql執行HPL/SQL語句,如下:

./hplsql -e "CURRENT_DATE+1"

 

  正確顯示時間;

  2)運行 bin/beeline.sh,然后輸入  !connect jdbc:hive2://IPAddress:10000;username;password;

  發現連接成功。 

  3)執行的命令:

./hplsql -e "SELECT * FROM default.test LIMIT 10"

  3.1 報錯信息:...HiveSQLExpection:Error while compiling statement:No privilege 'Select' found for inputs {.....}

  顯示對表沒有select權限。

  分析過程:

  1)使用命令vim hplsql腳本發現,該腳本主要是調用hive腳本;

  2)查看hive腳本,發現腳本使用環境變量HIVE_CONF_DIR;

  3)使用命令env|grep hive發現,環境變量HIVE_CONF_DIR未設置;

  4)在/etc/profile中加入export HIVE_CONF_DIR=/etc/hive/conf(根據hplsql-site.xml路徑指定)

  3.2 報錯信息:java.sql.SQLExpection:Could not open client transport with JDBC Uri:jdbc:hive2://localhost:10000:java.net.ConnetcExpection:拒絕連接

  一般為hive-site.xml文件配置問題

  分析過程:

  1)檢查端口10000是否啟動

netstat -anp|grep 10000

  2)檢查hive-site.xml配置

<configuration>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>IPAddress</value>
</property>
</configuration>

 

 

 

 

 

 

 

注:IPAddress為hive服務對應的IP地址。


免責聲明!

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



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