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

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

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

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

image

(2)打開(kāi)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)在彈出窗口中輸入包的名稱(chēng)"hive"后,點(diǎn)擊"Finish"

image

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

image

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

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

image

(13)在此界面編寫(xiě)程序

image

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

HiveCreateDb

HiveCreateTable

HiveLoadData

HiveAlterRenameTo

HiveDropTable

HiveDropDb

HiveQLWhere

HiveQLGroupBy

HiveQLOrderBy

2. 使用eclipse編寫(xiě)JDBC程序

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

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

image

在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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,通過(guò)查詢(xún)數(shù)據(jù)庫(kù)的命令可以檢查到該數(shù)據(jù)庫(kù)已創(chuàng)建成功。

show databases;

image

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

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

image

切換到root用戶(hù)下:

su

然后輸入密碼(密碼不可見(jiàn)):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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveCreateTable類(lèi)

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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ù),然后通過(guò)查詢(xún)表的命令可以檢查到該表已創(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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveAlterRenameTo類(lèi)

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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),然后通過(guò)查詢(xú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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveAlterRenameTo類(lèi)

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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),然后通過(guò)查詢(xú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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveDropTable類(lèi)

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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),然后通過(guò)查詢(xú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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveDropDb類(lèi)

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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),然后通過(guò)查詢(xú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ǔ)句的使用

查看薪資超過(guò)30000的員工:

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

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

核心代碼如下:

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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ǔ)句的使用

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

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

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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)建類(lèi)的步驟【第一部分中的第(11)-(13)部】創(chuàng)建一個(gè)HiveQLOrderBy類(lèi)

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

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

image

② 在代碼編寫(xiě)完成之后,可以右鍵代碼編輯區(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容