版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
HBase數(shù)據(jù)庫應用案例教程2HBaseShell項目項目導讀HBaseShell是HBase數(shù)據(jù)庫自帶的命令行工具。通過HBaseShell,用戶可以直接使用命令來完成數(shù)據(jù)庫的常見操作,無須編寫額外的代碼或使用其他工具。這種交互方式簡單直觀,使得用戶能夠更加輕松地使用HBase,同時也為用戶提供了最基本的學習和探索HBase功能的途徑。知識目標掌握常規(guī)操作命令的格式,如help、status、version命令等。掌握數(shù)據(jù)定義命令的格式,如create、list、describe命令等。掌握數(shù)據(jù)操作命令的格式,如put、get、scan、delete命令等。能力目標能夠使用HBaseShell與HBase進行交互。素質目標增強主動思考、積極尋求問題解決方法的意識。提高隱私保護意識,樹立正確的價值觀。項目分析使用HBaseShell提供的各種命令,用戶可以輕松地與HBase進行交互,如創(chuàng)建、刪除和修改表,插入、更新和查詢數(shù)據(jù)等。本項目就以學生信息表為例,介紹常用HBaseShell命令的格式,然后通過創(chuàng)建并操作用戶行為數(shù)據(jù)表,練習HBaseShell的綜合應用。項目導航常規(guī)操作命令1數(shù)據(jù)定義命令2數(shù)據(jù)操作命令301常規(guī)操作命令問題導入全班學生以3~5人為一組,各組選出組長。組長組織組員掃碼觀看“什么是Shell”和“使用HBaseShell操作HBase的好處”視頻,討論并回答下列問題。問題1:說一說你對Shell的理解。問題2:簡述使用HBaseShell操作HBase的好處。什么是Shell使用HBaseShell
操作HBase的好處常規(guī)操作命令HBase啟動成功后,輸入以下命令可進入Shell環(huán)境,如下圖所示。Shell環(huán)境[root@localhost~]#hbaseshell常規(guī)操作命令HBase的單機模式、偽分布式模式和完全分布式模式有什么區(qū)別?課堂討論2.1.1查看幫助熟練使用
help
命令,可在不借助網(wǎng)絡或其他參考資料的情況下快速獲取命令的幫助信息。help命令格式如下。help['命令名']2.1.1查看幫助【實例2-1】
查看HBaseShell中的所有命令。help語句執(zhí)行結果如圖所示。實例2-1語句執(zhí)行結果(部分)2.1.1查看幫助【實例2-2】
查看create命令的幫助信息。help'create'語句執(zhí)行結果如圖所示。實例2-2語句執(zhí)行結果(部分)2.1.1查看幫助在HBaseShell中,命令名稱以及命令格式中的參數(shù)在使用時需要區(qū)分大小寫嗎?課堂討論2.1.2查看狀態(tài)使用status命令可查看HBase集群的狀態(tài)信息,其命令格式如下。//查看集群的狀態(tài)信息statusstatus'summary'//查看集群最簡潔的狀態(tài)信息status'simple'//查看集群詳細的狀態(tài)信息status'detailed'2.1.2查看狀態(tài)status命令不加參數(shù)時,status語句表示什么?課堂討論2.1.2查看狀態(tài)【實例2-3】
查看HBase集群的狀態(tài)信息。status語句執(zhí)行結果如圖所示。實例2-3語句執(zhí)行結果2.1.2查看狀態(tài)【實例2-4】
查看HBase集群詳細的狀態(tài)信息。status'detailed'語句執(zhí)行結果如圖所示。實例2-4語句執(zhí)行結果(部分)2.1.3查看版本【實例2-5】
查看當前環(huán)境中HBase的版本信息。version語句執(zhí)行結果如圖所示。使用version命令可查看HBase的版本信息,其命令格式如下。version實例2-5語句執(zhí)行結果2.1.4查看當前用戶【實例2-6】
查看當前用戶的詳細信息。whoami語句執(zhí)行結果如圖所示。使用whoami命令可查看當前用戶的詳細信息,其命令格式如下。whoami實例2-6語句執(zhí)行結果課堂檢測查看幫助、查看狀態(tài)、查看版本和查看當前用戶的命令分別是什么?課堂小結常規(guī)操作命令查看幫助查看狀態(tài)查看版本查看當前用戶02數(shù)據(jù)定義命令問題導入提問回顧上節(jié)課知識點:(1)查看幫助的命令是什么?(2)查看狀態(tài)的命令是什么?(3)查看版本的命令是什么?(4)查看當前用戶的命令是什么?2.2.1創(chuàng)建表create
命令:可創(chuàng)建一個新表,須指明表名和列族名。create'表名','列族名1'[,'列族名2']…create'表名',{NAME=>'列族名1'[,VERSIONS=>版本號]}[,{NAME=>'列族名2'[,VERSIONS=>版本號]}]…方括號表示內容為可選項;符號“=>”表示將后面的值賦給指定的參數(shù);版本號表示列族版本數(shù),是指單元格內的數(shù)據(jù)可以保留的版本個數(shù)。2.2.1創(chuàng)建表【實例2-7】創(chuàng)建名為test的表,要求表中包含一個列族info,且使用默認參數(shù)。create'test','info'也可以使用以下語句。create'test',{NAME=>'info'}語句執(zhí)行結果如下圖所示。實例2-7程序運行結果2.2.1創(chuàng)建表【實例2-8】創(chuàng)建名為student的表,要求表中包含兩個列族stu_info和stu_grade,且列族版本數(shù)分別為2和5。create'student',{NAME=>'stu_info',VERSIONS=>2},{NAME=>'stu_grade',VERSIONS=>5}2.2.1創(chuàng)建表在創(chuàng)建表時,如果不指定列族版本數(shù),查詢結果是什么?課堂討論2.2.2查看所有表使用list命令可查看HBase中的所有表,其命令格式如下。list【實例2-9】查看HBase中的所有表。list語句執(zhí)行結果如下圖所示。實例2-9程序運行結果2.2.3查看表結構使用describe命令可查看表的結構信息,其命令格式如下。describe'表名'【實例2-10】查看student表的結構信息。describe'student'語句執(zhí)行結果如右圖所示。實例2-9程序運行結果2.2.3查看表結構一般情況下,describe命令可以簡寫為“desc”。在使用desc簡寫命令時,下列那種情況會出錯?(a)desc‘my_table’(b)desc‘desc_table’課堂討論2.2.4修改表結構使用
alter
命令可修改表結構,如修改列族版本數(shù),添加或刪除列族等。alter
命令格式如下。//修改列族版本數(shù)alter'表名',{NAME=>'列族名1',VERSIONS=>版本號}[,{NAME=>'列族名2',VERSIONS=>版本號}]…//添加列族alter'表名','列族名1'[,'列族名2']…//刪除列族alter'表名',{NAME=>'列族名1',METHOD=>'delete'}[,{NAME=>'列族名2',METHOD=>'delete'}]…2.2.4修改表結構【實例2-11】添加列族。在student表中添加列族test。alter'student','test'語句執(zhí)行結果如下圖所示。實例2-11程序運行結果2.2.4修改表結構【實例2-12】修改列族版本數(shù)。將student表中列族stu_info的版本數(shù)修改為4。alter'student',{NAME=>'stu_info',VERSIONS=>4}使用describe命令查看student表當前的結構信息,如下圖所示。實例2-12程序運行結果2.2.4修改表結構【實例2-13】刪除列族。將student表中的列族test刪除。alter'student',{NAME=>'test',METHOD=>'delete'}也可以使用以下語句。alter'student','delete'=>'test'2.2.4修改表結構當HBase表中只有一個列族時,能否將其刪除?課堂討論2.2.5判斷表是否存在使用exists命令可判斷指定表是否存在,其命令格式如下。exists'表名'【實例2-14】判斷student表是否存在。exists'student'語句執(zhí)行結果如下圖所示。實例2-14程序運行結果student表存在2.2.5判斷表是否存在【實例2-15】判斷teacher表是否存在。exists'teacher'語句執(zhí)行結果如下圖所示。實例2-15程序運行結果teacher表存在2.2.6禁用/啟用表1.禁用表01disable命令:禁用指定表。disable'表名'02disable_all命令:禁用所有滿足正則表達式的表。disable_all'正則表達式'03is_disabled命令:判斷指定表是否被禁用。is_disabled'表名'2.2.6禁用/啟用表1.禁用表【實例2-16】禁用表student。disable'student'【實例2-17】禁用所有以“t”開頭的表。disable_all't.*'語句執(zhí)行結果如下圖所示。實例2-17程序運行結果2.2.6禁用/啟用表1.禁用表【實例2-18】判斷student表是否被禁用。is_disabled'student'語句執(zhí)行結果如下圖所示。實例2-18程序運行結果student表已經(jīng)被禁用2.2.6禁用/啟用表2.啟用表01enable命令:啟用指定表。enable'表名'02enable_all命令:啟用所有滿足正則表達式的表。enable_all'正則表達式'03is_enabled命令:判斷指定表是否被啟用。is_enabled'表名'2.2.6禁用/啟用表2.啟用表【實例2-19】啟用student表。enable'student'【實例2-20】判斷student表是否被啟用。is_enabled'student'語句執(zhí)行結果如下圖所示。實例2-20程序運行結果2.2.7刪除表刪除表分兩步進行,首先禁用表,然后刪除表。(1)drop命令:刪除指定表。disable'表名'drop'表名'(2)drop_all命令:刪除所有滿足正則表達式的表。disable'正則表達式'drop_all'正則表達式'2.2.7刪除表【實例2-21】刪除test表。//禁用test表,若test表已禁用,可不執(zhí)行該操作disable'test'//刪除test表drop'test'使用list命令查看test表是否刪除成功,如下圖所示。實例2-20程序運行結果test表刪除成功課堂檢測如何創(chuàng)建一個新表?如何查看HBase中的所有表?如何查看表的結構信息?如何修改列族版本數(shù),添加或刪除列族?如何判斷表是否存在?如何禁用/啟用表?如何刪除表?課堂小結數(shù)據(jù)定義命令創(chuàng)建表查看所有表查看表結構修改表結構判斷表是否存在禁用/啟用表禁用表啟用表刪除表03數(shù)據(jù)操作命令問題導入提問回顧上節(jié)課知識點:創(chuàng)建表、查看所有表、查看表結構、修改表結構、判斷表是否存在、禁用/啟用表、刪除表的命令分別是什么?2.3.1插入/更新數(shù)據(jù)使用put命令可向表中插入數(shù)據(jù),或更新指定行的數(shù)據(jù)。在使用put命令時,必須指明表名和行鍵,其命令格式如下。put'表名','行鍵','列族名[:列限定符名]','列值'【實例2-22】向student表中插入數(shù)據(jù)。put'student','20231001','stu_info:name','Lisi'上述語句中,student是表名;20231001是行鍵;“stu_info:name”中的stu_info是列族名,必須是已經(jīng)定義的;“stu_info:name”中的name是列限定符名,是臨時定義的;Lisi
是單元格的值。2.3.1插入/更新數(shù)據(jù)put'student','20231001','stu_info:sex','female'put'student','20231001','stu_info:class','1'put'student','20231001','stu_grade:Chinese','95'put'student','20231001','stu_grade:English','99'繼續(xù)向student表中插入數(shù)據(jù),完善Lisi的信息。以上語句的作用是插入一條學號為
20231001,姓名為
Lisi,性別為
female,班級為
1班,語文、英語科目成績分別為95分和99分的數(shù)據(jù)。2.3.1插入/更新數(shù)據(jù)//插入第二行數(shù)據(jù)put'student','20231002','stu_info:name','zhangxin'put'student','20231002','stu_info:sex','male'put'student','20231002','stu_info:class','2'put'student','20231002','stu_grade:Chinese','90'put'student','20231002','stu_grade:English','95'//插入第三行數(shù)據(jù)put'student','20231003','stu_info:name','wangwei'put'student','20231003','stu_info:sex','male'put'student','20231003','stu_info:class','3'put'student','20231003','stu_grade:Chinese','92'put'student','20231003','stu_grade:English','93'繼續(xù)向student表中插入兩行數(shù)據(jù)。2.3.1插入/更新數(shù)據(jù)插入數(shù)據(jù)后的student表如下圖所示。插入數(shù)據(jù)后的student表2.3.1插入/更新數(shù)據(jù)此時,student表的邏輯模型如下表所示。行鍵stu_infostu_gradenamesexclassChineseEnglish20231001Lisifemale1959920231002zhangxinmale2909520231003wangweimale39293student表的邏輯模型如果使用put語句操作的單元格中已有數(shù)據(jù),則在不考慮時間戳的情況下,執(zhí)行put語句將更新單元格中已有的數(shù)據(jù)。2.3.1插入/更新數(shù)據(jù)【實例2-23】將student表中行鍵為20231001的學生姓名由Lisi更新為Lisa。put'student','20231001','stu_info:name','Lisa'更新數(shù)據(jù)后的student表如下圖所示。更新數(shù)據(jù)后的student表2.3.1插入/更新數(shù)據(jù)執(zhí)行put命令時,插入和更新有什么不同?課堂討論拓展閱讀HBase提供了append命令用于給某個單元格的值拼接新的值,其命令格式如下。append'表名','行鍵','列族名:列限定符名','值'假設test表中行鍵為101、列名為“info:name”的單元格數(shù)據(jù)為“wang”,則執(zhí)行語句“append'test','101','info:name','dong'”后,列名為“info:name”的單元格數(shù)據(jù)變?yōu)椤皐angdong”。2.3.2查詢數(shù)據(jù)1.get命令使用get命令可查詢表中的一行數(shù)據(jù)或一個單元格的數(shù)據(jù),其命令格式如下。//查詢一行數(shù)據(jù)或一行中指定列族名或列名的數(shù)據(jù)get'表名','行鍵'[,'列族名1[:列限定符名1]'][,'列族名2[:列限定符名2]']…//查詢一個指定列族名或列名的數(shù)據(jù)get'表名','行鍵',{COLUMN=>'列族名[:列限定符名]'}//查詢多個指定列族名或列名的數(shù)據(jù),此處列族名外的方括號不能省略get'表名','行鍵',{COLUMN=>['列族名1[:列限定符名1]','列族名2[:列限定符名2]']…}//查詢單元格中多個版本數(shù)據(jù)get'表名','行鍵',{COLUMN=>'列族名[:列限定符名]',VERSIONS=>版本號}2.3.2查詢數(shù)據(jù)1.get命令【實例2-24】使用get命令查詢student表中的數(shù)據(jù)。get'student','20231001'(1)查詢student表中行鍵為20231001的數(shù)據(jù)。語句執(zhí)行結果如下圖所示。使用get命令查詢一行數(shù)據(jù)2.3.2查詢數(shù)據(jù)1.get命令get'student','20231002','stu_grade'(2)查詢student表中行鍵為20231002、列族名為stu_grade的數(shù)據(jù)。語句執(zhí)行結果如下圖所示。get'student','20231002',{COLUMN=>'stu_grade'}也可以使用以下語句。使用get命令查詢一行中指定列族名數(shù)據(jù)2.3.2查詢數(shù)據(jù)1.get命令get'student','20231003',{COLUMN=>['stu_info:name','stu_info:sex']}(3)查詢student表中行鍵為20231003、列族名為stu_info、列限定符名為name和sex的數(shù)據(jù)。語句執(zhí)行結果如下圖所示。get'student','20231003','stu_info:name','stu_info:sex'也可以使用以下語句。使用get命令查詢一行中指定列名數(shù)據(jù)2.3.2查詢數(shù)據(jù)1.get命令(4)查詢student表中行鍵為20231001、列族名為stu_info、列限定符名為name的兩個版本數(shù)據(jù)。語句執(zhí)行結果如下圖所示。get'student','20231001',{COLUMN=>'stu_info:name',VERSIONS=>2}使用get命令查詢單元格中多個版本數(shù)據(jù)2.3.2查詢數(shù)據(jù)2.scan命令使用scan命令既可查詢表中的一行數(shù)據(jù),又可查詢表中的全部數(shù)據(jù),其命令格式如下。//查詢全部數(shù)據(jù)或指定列族名或列名的數(shù)據(jù)scan'表名'[,{COLUMN=>'列族名[:列限定符名]'}]//查詢多個指定列族名或列名的數(shù)據(jù),此處列族名外的方括號不能省略scan'表名',{COLUMNS=>['列族名1[:列限定符名1]','列族名2[:列限定符名2]']…}//查詢指定列族名或列名的數(shù)據(jù),并指定返回最大行數(shù)scan'表名',{COLUMNS=>'列族名[:列限定符名]',LIMIT=>行數(shù)}//查詢指定行鍵范圍的數(shù)據(jù),起始行鍵和結束行鍵可同時存在,也可任選其一scan'表名',{COLUMNS=>'列族名[:列限定符名]',STARTROW=>'起始行鍵',ENDROW=>'結束行鍵'}2.3.2查詢數(shù)據(jù)2.scan命令使用STARTROW和ENDROW限制查詢范圍時,查詢出來的行數(shù)是否包括STARTROW和ENDROW?課堂討論2.3.2查詢數(shù)據(jù)2.scan命令【實例2-25】使用scan命令查詢student表中的數(shù)據(jù)。scan'student'(1)查詢student表中的全部數(shù)據(jù)。語句執(zhí)行結果如下圖所示。使用scan命令查詢全部數(shù)據(jù)2.3.2查詢數(shù)據(jù)2.scan命令scan'student',{COLUMN=>'stu_grade'}(2)查詢student表中列族名為stu_grade的數(shù)據(jù)。語句執(zhí)行結果如下圖所示。使用scan命令查詢指定列族名數(shù)據(jù)2.3.2查詢數(shù)據(jù)2.scan命令scan'student',{COLUMNS=>['stu_info:name','stu_info:class'],LIMIT=>2}(3)查詢student表中列族名為stu_info、列限定符名為name和class的前2行數(shù)據(jù)。語句執(zhí)行結果如下圖所示。使用scan命令查詢指定列名數(shù)據(jù)2.3.2查詢數(shù)據(jù)2.scan命令scan'student',{COLUMNS=>['stu_info:name','stu_info:class'],STARTROW=>'20231002',LIMIT=>1}(4)查詢
student
表中行鍵大于或等于
20231002、列族名為
stu_info、列限定符名為name和class的數(shù)據(jù),并只返回滿足條件的1行數(shù)據(jù)。語句執(zhí)行結果如下圖所示。使用scan命令查詢指定數(shù)據(jù)2.3.3刪除數(shù)據(jù)1.delete命令使用delete命令可刪除表中某個列的數(shù)據(jù),其命令格式如下。delete'表名','行鍵','列族名:列限定符名'[,時間戳]【實例2-26】刪除student表中行鍵為20231001、列族名為stu_grade、列限定符名為English的數(shù)據(jù)。delete'student','20231001','stu_grade:English'使用scan命令查看數(shù)據(jù)是否刪除成功,如右圖所示。使用delete命令刪除數(shù)據(jù)后的student表2.3.3刪除數(shù)據(jù)1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學大一(經(jīng)濟學基礎)生產(chǎn)理論試題及答案
- 2026年河南職業(yè)技術學院單招綜合素質考試備考題庫帶答案解析
- 2026年湖北科技職業(yè)學院單招職業(yè)技能考試參考題庫帶答案解析
- 外包服務協(xié)議(2025年IT支持)
- 2026年撫州幼兒師范高等??茖W校單招職業(yè)技能筆試參考題庫帶答案解析
- 2026年成都藝術職業(yè)大學高職單招職業(yè)適應性測試備考試題有答案解析
- 2026年安徽工貿職業(yè)技術學院高職單招職業(yè)適應性測試模擬試題有答案解析
- 投資合作協(xié)議(2025年股權項目)
- 2026年廣州體育職業(yè)技術學院單招綜合素質考試備考題庫帶答案解析
- 2026年福建信息職業(yè)技術學院單招綜合素質筆試備考試題帶答案解析
- 養(yǎng)老機構殯葬協(xié)議書
- 蜜雪冰城加盟合同協(xié)議
- 10.2 常見的酸和堿(課件)-2024-2025學年九年級化學人教版下冊
- 2024電力智能錄波器技術規(guī)范
- 《中國慢性阻塞性肺疾病基層診療與管理指南(2024年)》解讀課件
- 暨南大學《法理學》2023-2024學年第一學期期末試卷
- 小學課后服務經(jīng)費管理方案
- 道路綠化養(yǎng)護道路綠化養(yǎng)護方案
- DL-T 5117-2021水下不分散混凝土試驗規(guī)程-PDF解密
- 寶馬購車合同
- 神經(jīng)內科品管圈成果匯報-提高腦卒中偏癱患者早期自我肢體功能鍛煉規(guī)范執(zhí)行率
評論
0/150
提交評論