Hive擴(kuò)展功能(六)--HPL/SQL(可使用存儲過程)

軟件環(huán)境:

linux系統(tǒng): CentOS6.7
Hadoop版本: 2.6.5
zookeeper版本: 3.4.8

</br>

主機(jī)配置:

一共m1, m2, m3這三部機(jī), 每部主機(jī)的用戶名都為centos
192.168.179.201: m1 
192.168.179.202: m2 
192.168.179.203: m3 

m1: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Master, Worker
m2: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Worker
m3: Zookeeper, DataNode, NodeManager, Worker

資料:

搭建教程:
    http://lxw1234.com/archives/2015/09/487.htm
下載HPL/SQL地址:
    http://www.hplsql.org/download
HPL/SQL官網(wǎng):
    http://www.hplsql.org/doc

注意事項:

一定不能在HPL/SQL上使用Hive語法的語句,要使用MySQLOracle等其他HPL/SQL支持的數(shù)據(jù)庫(具體可去官網(wǎng)查看),不然會報找不到dual表或者dual表中無該字段的錯誤,切記


版本選擇:

HPL/SQL0.3.17版本(必須是0.3.17或者0.3.17之后的版本)解決了強(qiáng)制讀From dual表的問題, 而本次安裝的是Hive2.1.1版本自帶的是HPLSQL0.3.31版本, 已解決強(qiáng)制讀From dual表的問題.
若要解決強(qiáng)制讀From dual表的問題,應(yīng)下載一個0.3.17或0.3.17之后版本的HPL/SQL, 然后將解壓后得到的hplsql-0.3.17.jar包放入$HIVE_HOME/lib包下, 并重命名為hive-hplsql-*.jar格式的包,如:hive-hplsql-0.3.17.jar


</br>
</br>

1.編輯hive-site.xml文件

HPL/SQL與Hive是通過thrift方式連接, 編輯hive-site.xml, 添加以下配置項

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

</br>

2.編輯hplsql-site.xml文件

配置HPL/SQL與Hive的連接, 創(chuàng)建hplsql-site.xml文件(若已有則無需創(chuàng)建), 并將以下配置項拷貝到文件中

<configuration>
<property>
  <name>hplsql.conn.default</name>
  <value>hive2conn</value>
  <description>The default connection profile</description>
</property>
<property>
  <name>hplsql.conn.hiveconn</name>
  <value>org.apache.hadoop.hive.jdbc.HiveDriver;jdbc:hive://</value>
  <description>Hive embedded JDBC (not requiring HiveServer)</description>
</property>
<!-- 配置項hive.execution.engine默認(rèn)設(shè)置為mr,若使用spark作為引擎時,則設(shè)置為spark -->
<property>
  <name>hplsql.conn.init.hiveconn</name>
  <value>
     set mapred.job.queue.name=default;
     set hive.execution.engine=mr; 
     use default;
  </value>
  <description>Statements for execute after connection to the database</description>
</property>
<property>
  <name>hplsql.conn.convert.hiveconn</name>
  <value>true</value>
  <description>Convert SQL statements before execution</description>
</property>
<property>
  <name>hplsql.conn.hive2conn</name>
  <value>org.apache.hive.jdbc.HiveDriver;jdbc:hive2://m1:10000</value>
  <description>HiveServer2 JDBC connection</description>
</property>
<!-- 配置項hive.execution.engine默認(rèn)設(shè)置為mr,若使用spark作為引擎時,則設(shè)置為spark -->
<property>
  <name>hplsql.conn.init.hive2conn</name>
  <value>
     set mapred.job.queue.name=default;
     set hive.execution.engine=mr; 
     use default;
  </value>
  <description>Statements for execute after connection to the database</description>
</property>
<property>
  <name>hplsql.conn.convert.hive2conn</name>
  <value>true</value>
  <description>Convert SQL statements before execution</description>
</property>
<property>
  <name>hplsql.conn.db2conn</name>
  <value>com.ibm.db2.jcc.DB2Driver;jdbc:db2://localhost:50001/dbname;user;password</value>
  <description>IBM DB2 connection</description>
</property>
<property>
  <name>hplsql.conn.tdconn</name>
  <value>com.teradata.jdbc.TeraDriver;jdbc:teradata://localhost/database=dbname,logmech=ldap;user;password</value>
  <description>Teradata connection</description>
</property>
<property>
  <name>hplsql.conn.mysqlconn</name>
  <value>com.mysql.jdbc.Driver;jdbc:mysql://localhost/test;user;password</value>
  <description>MySQL connection</description>
</property>
<property>
  <name>hplsql.dual.table</name>
  <value>default.dual</value>
  <description>Single row, single column table for internal operations</description>
</property>
<property>
  <name>hplsql.insert.values</name>
  <value>native</value>
  <description>How to execute INSERT VALUES statement: native (default) and select</description>
</property>
<property>
  <name>hplsql.onerror</name>
  <value>exception</value>
  <description>Error handling behavior: exception (default), seterror and stop</description>
</property>
<property>
  <name>hplsql.temp.tables</name>
  <value>native</value>
  <description>Temporary tables: native (default) and managed</description>
</property>
<property>
  <name>hplsql.temp.tables.schema</name>
  <value></value>
  <description>Schema for managed temporary tables</description>
</property>
<property>
  <name>hplsql.temp.tables.location</name>
  <value>/home/centos/soft/hive/tmp/plhql</value>
  <description>LOcation for managed temporary tables in HDFS</description>
</property>
<!-- 下面兩項需要按實際情況修改 -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>m1</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
</configuration>

</br>

3.配置dual表 (此步驟可跳過)

啟動Hive服務(wù),依照在hplsql-site.xml文件中的配置去創(chuàng)建(默認(rèn)是在default庫中創(chuàng)建了dual表)

use default;
create table dual(DUMMY VARCHAR(1));

</br>

4.在使用hplsql存儲過程前, 需先啟動HiveServer2和Metastore服務(wù)
sh $HIVE_HOME/bin/hive  --service  metastore
sh $HIVE_HOME/bin/hive  --service  hiveserver2

</br>
</br>
</br>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肆饶,一起剝皮案震驚了整個濱河市顽染,隨后出現(xiàn)的幾起案子毒涧,更是在濱河造成了極大的恐慌乳绕,老刑警劉巖偏瓤,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簇宽,死亡現(xiàn)場離奇詭異函似,居然都是意外死亡版扩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門甜刻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绍撞,“玉大人,你說我怎么就攤上這事得院∩迪常” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵祥绞,是天一觀的道長非洲。 經(jīng)常有香客問我,道長蜕径,這世上最難降的妖魔是什么两踏? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮丧荐,結(jié)果婚禮上缆瓣,老公的妹妹穿的比我還像新娘。我一直安慰自己虹统,他們只是感情好弓坞,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布隧甚。 她就那樣靜靜地躺著,像睡著了一般渡冻。 火紅的嫁衣襯著肌膚如雪戚扳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天族吻,我揣著相機(jī)與錄音帽借,去河邊找鬼。 笑死超歌,一個胖子當(dāng)著我的面吹牛砍艾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巍举,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼脆荷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懊悯?” 一聲冷哼從身側(cè)響起蜓谋,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炭分,沒想到半個月后桃焕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡捧毛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年观堂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岖妄。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡型将,死狀恐怖寂祥,靈堂內(nèi)的尸體忽然破棺而出荐虐,到底是詐尸還是另有隱情,我是刑警寧澤丸凭,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布福扬,位于F島的核電站,受9級特大地震影響惜犀,放射性物質(zhì)發(fā)生泄漏铛碑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一虽界、第九天 我趴在偏房一處隱蔽的房頂上張望汽烦。 院中可真熱鬧,春花似錦莉御、人聲如沸撇吞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牍颈。三九已至迄薄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煮岁,已是汗流浹背讥蔽。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留画机,地道東北人冶伞。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像步氏,于是被迫代替她去往敵國和親碰缔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容