使用JDBC程序操作Hive數(shù)據(jù)庫(kù)

實(shí)驗(yàn)操作

1. 使用eclipse創(chuàng)建JDBC程序

(1)點(diǎn)擊eclipse圖標(biāo)打開eclipse祠斧。

image

(2)打開eclipse后若专,點(diǎn)擊Open Perspective:

image

(3)在彈出窗口中選中"Java"痹雅,并點(diǎn)擊"OK"

image

(4)右鍵點(diǎn)擊程序主界面左側(cè)空白處,在右鍵菜單中選擇"Import"

image

(5)在彈出窗口中依次點(diǎn)擊選擇“General”,“Existing Projects into Workspace”,接著點(diǎn)擊“Next”

image

(6)此時(shí)在彈出窗口右上角點(diǎn)擊“Browse...”

image

(7)在彈出窗口中點(diǎn)擊Hive文件夾,再點(diǎn)擊“OK”

image

(8)此時(shí)點(diǎn)擊“finish”即可進(jìn)入程序主界面

image

(9)在程序主界面左側(cè)Package Explorer中痴昧,右鍵名為"Hive"的項(xiàng)目,在右鍵菜單選擇"New"中的"Package"選項(xiàng)

image

(10)在彈出窗口中輸入包的名稱"hive"后冠王,點(diǎn)擊"Finish"

image

(11)接下來(lái)創(chuàng)建類赶撰,我們將要?jiǎng)?chuàng)建9個(gè)不同的類來(lái)完成本次實(shí)驗(yàn)。右鍵名為"hive"的包,在右鍵菜單中選擇"New"選項(xiàng)中的"Class"

image

(12)在彈出窗口中輸入類的名稱(注意:此處的類名務(wù)必輸入第一個(gè)程序的類名"HiveCreateDb"),最后點(diǎn)擊"Finish"即可退回主界面

此時(shí)就可以編寫JDBC程序了

image

(13)在此界面編寫程序

image

整個(gè)實(shí)驗(yàn)我們需要在hive新建9個(gè)類豪娜,分別是

HiveCreateDb

HiveCreateTable

HiveLoadData

HiveAlterRenameTo

HiveDropTable

HiveDropDb

HiveQLWhere

HiveQLGroupBy

HiveQLOrderBy

2. 使用eclipse編寫JDBC程序

(1)創(chuàng)建數(shù)據(jù)庫(kù)

①在這個(gè)HiveCreateDb類中編寫代碼實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)的功能餐胀,核心代碼如下:

image

在代碼編寫完成之后,可以右鍵代碼編輯區(qū)任意位置瘤载,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼否灾。

image

②當(dāng)代碼執(zhí)行成功后,主界面下方的控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Database userdb created successfully.”鸣奔。另外可以點(diǎn)擊控制臺(tái)右上角的最大化按鈕墨技,能夠更直觀的看到相關(guān)的信息。

image

③下圖為最大化的控制臺(tái)輸出的信息溃蔫。

image

④此時(shí)健提,我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)琳猫,輸入hive命令進(jìn)入HIveQL伟叛,通過查詢數(shù)據(jù)庫(kù)的命令可以檢查到該數(shù)據(jù)庫(kù)已創(chuàng)建成功。

show databases;

image

⑤ 注意脐嫂,這里提供一種完整代碼的拷貝方法统刮,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序账千。

點(diǎn)擊選擇左邊任務(wù)欄中“終端”的圖標(biāo)即可打開“終端”命令行程序

image

切換到root用戶下:

su

然后輸入密碼(密碼不可見):123456

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveCreateDb.java /home/ubuntu/workspace/Hive/src/hive/HiveCreateDb.java

image

單擊代碼編輯區(qū)任意位置侥蒙,即可刷新并呈現(xiàn)完整代碼

image

(2)創(chuàng)建表

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveCreateTable類

① 在這個(gè)HiveCreateTable類中編寫代碼實(shí)現(xiàn)創(chuàng)建表的功能,核心代碼如下:

image

② 在代碼編寫完成之后匀奏,可以右鍵代碼編輯區(qū)任意位置鞭衩,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后娃善,控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Table employee created.”论衍。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 此時(shí)聚磺,我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)坯台,使用userdb數(shù)據(jù)庫(kù),然后通過查詢表的命令可以檢查到該表已創(chuàng)建成功瘫寝。

use userdb;

show tables;

image

④ 同樣的蜒蕾,這里也提供一種完整代碼的拷貝方法,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝焕阿,來(lái)運(yùn)行該程序咪啡。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveCreateTable.java /home/ubuntu/workspace/Hive/src/hive/HiveCreateTable.java

image

單擊代碼編輯區(qū)任意位置,即可刷新并呈現(xiàn)完整代碼

image

(3)加載數(shù)據(jù)

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveAlterRenameTo類

① 在這個(gè)類中編寫代碼實(shí)現(xiàn)加載的功能暮屡,核心代碼如下:

image

② 在代碼編寫完成之后撤摸,可以右鍵代碼編輯區(qū)任意位置,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后愁溜,控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Data loaded successfully.”疾嗅。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 此時(shí)冕象,我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)代承,然后通過查詢命令可以檢查到該數(shù)據(jù)已導(dǎo)入成功。

select * from employee;

image

④ 同樣的渐扮,這里也提供一種完整代碼的拷貝方法论悴,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序墓律。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveLoadData.java /home/ubuntu/workspace/Hive/src/hive/HiveLoadData.java

image

單擊代碼編輯區(qū)任意位置膀估,即可刷新并呈現(xiàn)完整代碼

image

(4)表的重命名

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveAlterRenameTo類

① 在這個(gè)HiveAlterRenameTo類中編寫代碼實(shí)現(xiàn)表的重命名的功能,核心代碼如下:

image

② 在代碼編寫完成之后耻讽,可以右鍵代碼編輯區(qū)任意位置察纯,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后针肥,控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Table Renamed successfully”饼记。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 此時(shí)慰枕,我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)具则,然后通過查詢命令可以檢查到該表已被重新命名。

show tables;

image

④ 同樣的具帮,這里也提供一種完整代碼的拷貝方法博肋,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序蜂厅。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveAlterRenameTo.java /home/ubuntu/workspace/Hive/src/hive/HiveAlterRenameTo.java

image

單擊代碼編輯區(qū)任意位置匪凡,即可刷新并呈現(xiàn)完整代碼

image

(5)刪除表

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveDropTable類

① 在這個(gè)類中編寫代碼實(shí)現(xiàn)刪除表的功能,核心代碼如下:

image

② 在代碼編寫完成之后葛峻,可以右鍵代碼編輯區(qū)任意位置锹雏,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后术奖,控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Drop Table emp successfully”礁遵。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 此時(shí)采记,我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)佣耐,然后通過查詢命令可以檢查到該表已被刪除。

show tables;

image

④ 同樣的唧龄,這里也提供一種完整代碼的拷貝方法兼砖,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveDropTable.java /home/ubuntu/workspace/Hive/src/hive/HiveDropTable.java

image

單擊代碼編輯區(qū)任意位置讽挟,即可刷新并呈現(xiàn)完整代碼

image

(6)刪除數(shù)據(jù)庫(kù)

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveDropDb類

① 在這個(gè)HiveDropDb類中編寫代碼實(shí)現(xiàn)刪除數(shù)據(jù)庫(kù)的功能懒叛,核心代碼如下:

image

② 在代碼編寫完成之后,可以右鍵代碼編輯區(qū)任意位置耽梅,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼薛窥。

當(dāng)代碼執(zhí)行成功后,控制臺(tái)會(huì)打印出代碼輸出語(yǔ)句中的“Drop database userdb”眼姐。下圖為最大化的控制臺(tái)輸出的信息诅迷。

image

③ 此時(shí),我們點(diǎn)擊虛擬機(jī)1進(jìn)入master節(jié)點(diǎn)众旗,然后通過查詢命令可以檢查到該數(shù)據(jù)庫(kù)已被刪除罢杉。

show databases;

image

④ 同樣的,這里也提供一種完整代碼的拷貝方法贡歧,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝滩租,來(lái)運(yùn)行該程序。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveDropDb.java /home/ubuntu/workspace/Hive/src/hive/HiveDropDb.java

image

單擊代碼編輯區(qū)任意位置艘款,即可刷新并呈現(xiàn)完整代碼

image

(7)SELECT...WHERE語(yǔ)句的使用

查看薪資超過30000的員工:

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveQLWhere類

① 在這個(gè)HiveQLWhere類中編寫代碼實(shí)現(xiàn)查詢的功能持际,

核心代碼如下:

image

② 在代碼編寫完成之后,可以右鍵代碼編輯區(qū)任意位置哗咆,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后益眉,控制臺(tái)會(huì)打印出篩選出來(lái)的結(jié)果晌柬。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 同樣的郭脂,這里也提供一種完整代碼的拷貝方法年碘,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序展鸡。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveQLGroupBy.java /home/ubuntu/workspace/Hive/src/hive/HiveQLGroupBy.java

image

單擊代碼編輯區(qū)任意位置屿衅,即可刷新并呈現(xiàn)完整代碼

image

(8)Group by語(yǔ)句的使用

查詢獲取每個(gè)部門的員工人數(shù):

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveQLGroupBy類

① 在這個(gè)HiveQLGroupBy類中編寫代碼實(shí)現(xiàn)查詢的功能,核心代碼如下:

image

② 在代碼編寫完成之后莹弊,可以右鍵代碼編輯區(qū)任意位置涤久,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后忍弛,控制臺(tái)會(huì)打印出篩選出來(lái)的結(jié)果响迂。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 同樣的细疚,這里也提供一種完整代碼的拷貝方法蔗彤,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveQLGroupBy.java /home/ubuntu/workspace/Hive/src/hive/HiveQLGroupBy.java

image

單擊代碼編輯區(qū)任意位置然遏,即可刷新并呈現(xiàn)完整代碼

(9)Order by語(yǔ)句的使用

重復(fù)創(chuàng)建類的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveQLOrderBy類

獲取員工的詳細(xì)信息贫途,并把結(jié)果按照部門名稱排序:

① 在這個(gè)類中編寫代碼實(shí)現(xiàn)查詢的功能,核心代碼如下:

image

② 在代碼編寫完成之后待侵,可以右鍵代碼編輯區(qū)任意位置潮饱,選擇"Run As"中的"Java Application"來(lái)運(yùn)行代碼。

當(dāng)代碼執(zhí)行成功后诫给,控制臺(tái)會(huì)打印出篩選出來(lái)的結(jié)果香拉。下圖為最大化的控制臺(tái)輸出的信息。

image

③ 同樣的中狂,這里也提供一種完整代碼的拷貝方法凫碌,當(dāng)不能根據(jù)核心代碼的提示做出該程序時(shí)可以使用代碼拷貝,來(lái)運(yùn)行該程序胃榕。

將完整代碼導(dǎo)入eclipse:

cp /opt/code/HiveQLGroupBy.java /home/ubuntu/workspace/Hive/src/hive/HiveQLGroupBy.java

image

單擊代碼編輯區(qū)任意位置盛险,即可刷新并呈現(xiàn)完整代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市勋又,隨后出現(xiàn)的幾起案子苦掘,更是在濱河造成了極大的恐慌,老刑警劉巖楔壤,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹤啡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹲嚣,警方通過查閱死者的電腦和手機(jī)递瑰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隙畜,“玉大人抖部,你說我怎么就攤上這事∫槎瑁” “怎么了慎颗?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)言询。 經(jīng)常有香客問我俯萎,道長(zhǎng),這世上最難降的妖魔是什么倍试? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任讯屈,我火速辦了婚禮,結(jié)果婚禮上县习,老公的妹妹穿的比我還像新娘涮母。我一直安慰自己谆趾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布叛本。 她就那樣靜靜地躺著沪蓬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪来候。 梳的紋絲不亂的頭發(fā)上跷叉,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音营搅,去河邊找鬼云挟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛转质,可吹牛的內(nèi)容都是我干的园欣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼休蟹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沸枯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起赂弓,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绑榴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盈魁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翔怎,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年备埃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姓惑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡按脚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敦冬,到底是詐尸還是另有隱情辅搬,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布脖旱,位于F島的核電站堪遂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏萌庆。R本人自食惡果不足惜溶褪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望践险。 院中可真熱鬧猿妈,春花似錦吹菱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至俯抖,卻和暖如春输瓜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芬萍。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工尤揣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柬祠。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓北戏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親瓶盛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子最欠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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