連接HiveServer2傳遞參數(shù)的幾種方式

HiveServer2(以下簡稱:HS2)是Hive提供的一種jdbc服務(wù)臀规,用戶可以通過Hive自帶的Beeline連接刨摩,也可以使用Java痹兜、Python或者PHP等通過jdbc的方式連接再登。下面以Java連接HiveServer2為例來介紹幾種向Hive傳遞參數(shù)的方法方篮。

一有缆、如何連接HS2

連接到HS2象踊,一般需要提供HS2的地址、端口號棚壁、連接的Hive庫杯矩、用戶名和密碼這幾個(gè)必選項(xiàng),示例代碼如下:

Class.forName("org.apache.hive.jdbc.HiveDriver");
Properties info = new Properties();
info.setProperty("user", "user_name");
info.setProperty("password", "passwd");
String JDBC_URL="jdbc:hive2://localhost:10000/default";
Connection conn = DriverManager.getConnection(JDBC_URL, info);
HiveStatement stat = (HiveStatement) conn.createStatement();
...

只要URL袖外、用戶名和密碼正確的話史隆,通過上面的示例代碼,就可以連接到HS2執(zhí)行操作了曼验。但是往往這樣還不夠泌射,如果我們想通過傳遞一些Hive的配置信息,那該怎么辦呢蚣驼?

二魄幕、傳遞參數(shù)

可以通過如下的幾種方式來傳遞參數(shù):

  • 類HiveClient方式
    使用過Hive客戶端的用戶都知道,如果我們想改變Hive的某一項(xiàng)客戶端配置的話颖杏,可以通過set hive_conf_key=hive_conf_value;的方式來修改纯陨。由此,很自然的我們會(huì)想到在獲得了一個(gè)JDBC的連接后留储,我們執(zhí)行一下上面的語句不就可以了翼抠。示例代碼如下:
// 我們執(zhí)行一些復(fù)雜的sql的時(shí)候,往往需要制定一個(gè)隊(duì)列获讳,假設(shè)隊(duì)列的名字為"root.hive-server2"
stat.execute("set mapreduce.job.queuename=root.hive-server2"); 

NOTE:需要注意的是阴颖,execute中的set語句不能包含分號(不能是set mapreduce.job.queuename=root.hive-server2;),這是和客戶端的區(qū)別丐膝,否則不生效量愧。

  • 在JDBC URL中傳遞
    對jdbc比較熟悉的用戶,都知道可以在jdbc的連接中傳遞一些參數(shù)帅矗,hive也一樣支持偎肃。對于上面的需求,可以把充分利用JDBC_URL浑此。示例代碼如下:
...
String JDBC_URL="jdbc:hive2://localhost:10000/default?mapreduce.job.queuename=root.hive-server2;hive.cli.print.header=false";
Connection conn = DriverManager.getConnection(JDBC_URL, info);
...

NOTE:細(xì)心的讀者肯定注意到了這里的JDBC_URL和普通的jdbc傳遞參數(shù)不一樣的地方累颂,那就是這里是通過使用分號來分割多個(gè)hive的配置變量的,而不是使用'&'。
NOTE:另外紊馏,這里傳遞hive配置和hive變量還是有區(qū)別的料饥,Hive是通過'#'來分割Hive配置列表和Hive變量列表的。

// 源碼HiveConnection.java有說明
// JDBC URL: jdbc:hive2://<host>:<port>/dbName;sess_var_list?hive_conf_list#hive_var_list
// each list: <key1>=<val1>;<key2>=<val2> and so on

  • 通過連接屬性配置
    如果需要傳遞的配置數(shù)目比較多朱监,使用上面的方法岸啡,難免有點(diǎn)冗余和負(fù)雜,URL將會(huì)變得特別長赫编。其實(shí)凰狞,我們可以像配置user和password一樣來傳遞配置。區(qū)別于user和password配置方式的地方是沛慢,必須明確指出配置的是一個(gè)hive_conf還是hive_var,否則配置不會(huì)生效达布。示例代碼如下:
Class.forName("org.apache.hive.jdbc.HiveDriver");
Properties info = new Properties();
info.setProperty("user", "user_name");
info.setProperty("password", "passwd");
// 這里傳遞了一個(gè)隊(duì)列的hive_conf
info.setProperty("hiveconf:mapreduce.job.queuename", "root.hive-server2");
String JDBC_URL="jdbc:hive2://localhost:10000/default";
Connection conn = DriverManager.getConnection(JDBC_URL, info);
HiveStatement stat = (HiveStatement) conn.createStatement();
...

好了团甲,這就是我想介紹的幾種連接HiveServer2時(shí)傳遞參數(shù)的方式,希望對大家有所幫助黍聂!謝謝躺苦!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市产还,隨后出現(xiàn)的幾起案子匹厘,更是在濱河造成了極大的恐慌,老刑警劉巖脐区,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愈诚,死亡現(xiàn)場離奇詭異,居然都是意外死亡牛隅,警方通過查閱死者的電腦和手機(jī)炕柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒佣,“玉大人匕累,你說我怎么就攤上這事∧椋” “怎么了欢嘿?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長也糊。 經(jīng)常有香客問我炼蹦,道長,這世上最難降的妖魔是什么显设? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任框弛,我火速辦了婚禮,結(jié)果婚禮上捕捂,老公的妹妹穿的比我還像新娘瑟枫。我一直安慰自己斗搞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布慷妙。 她就那樣靜靜地躺著僻焚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膝擂。 梳的紋絲不亂的頭發(fā)上虑啤,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機(jī)與錄音架馋,去河邊找鬼狞山。 笑死,一個(gè)胖子當(dāng)著我的面吹牛叉寂,可吹牛的內(nèi)容都是我干的萍启。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼屏鳍,長吁一口氣:“原來是場噩夢啊……” “哼勘纯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钓瞭,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤驳遵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后山涡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堤结,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淑廊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年坯临,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帝簇。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡系吩,死狀恐怖来庭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穿挨,我是刑警寧澤月弛,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站科盛,受9級特大地震影響帽衙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贞绵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一厉萝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦谴垫、人聲如沸章母。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳怎。三九已至,卻和暖如春前弯,著一層夾襖步出監(jiān)牢的瞬間蚪缀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工恕出, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留询枚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓浙巫,卻偏偏與公主長得像哩盲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子狈醉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

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