




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單元8HBase綜合實戰18.2商品訂單表設計目錄8.1MySQL數據遷移到HBase28.1MySQL數據遷移到HBase本案例的數據以學生課程成績為例,在MySQL數據庫中將實體和實體間的關系都存儲在數據庫中,本例中的實體有學生和課程,分別對應學生信息表studentInfo和課程信息表courseInfo,實體之間的關系為選課及成績,對應成績表gradeInfo,這三張表的結構如圖8-1所示。8.1MySQL數據遷移到HBaseHBase表將MySQL三張表的數據聚合到同一張表中,將studentInfo表映射到HBase的StuInfo列族,將gradeInfo和courseInfo表信息映射到Grades列族中,使用HBase列族形式將數據整合到一起,用戶查詢起來會更加方便,同時對出現大量空值的場景,可以節約大量的存儲空間。步驟1:創建coursesel.sql文件。2.登陸MySQL,創建數據庫,如下。createdatabasecoursesel;8.1MySQL數據遷移到HBase步驟2:通過JavaAPI讀取MySQL數據中學生信息表studentInfo內容1.注冊數據庫的驅動
2.打開數據庫鏈接。
3.獲取學生表studentinfo基本信息。
4.獲取課程信息。
8.1MySQL數據遷移到HBase步驟3:將MySQL數據導入HBase表。1.創建HBase表,通過JavaAPI連接HBase,創建表courseGrade2將MySQL數據導入HBase的courseGrade表
向列族中插入數據。連接MySQL數據庫讀取結果集,將查詢到的studentinfo表的學號信息作為rowKey,表中的姓名、年齡、性別作為列族StuInfo的列。通過MySQL連接查詢語句,指定查詢條件為學號,查詢到對應的課程名和成績作為列族Grades的列名和對應的單元格值。執行完成后,執行hbaseshellhbase:003:0>scan'courseGrade'
8.1MySQL數據遷移到HBase步驟3:將MySQL數據導入HBase表。3查詢數據可獲取某個學生所選課程的成績。以下示例表示獲取學號為1的學生的所有課程信息。執行完成后,執行結果如圖所示。
8.1MySQL數據遷移到HBase步驟3:將MySQL數據導入HBase表。1.創建HBase表,通過JavaAPI連接HBase,創建表courseGrade2將MySQL數據導入HBase的courseGrade表
向列族中插入數據。連接MySQL數據庫讀取結果集,將查詢到的studentinfo表的學號信息作為rowKey,表中的姓名、年齡、性別作為列族StuInfo的列。通過MySQL連接查詢語句,指定查詢條件為學號,查詢到對應的課程名和成績作為列族Grades的列名和對應的單元格值。執行完成后,執行hbaseshellhbase:003:0>scan'courseGrade'
8.2商品訂單表設計8.2.1生成商品訂單表數據步驟1:生產電商訂單數據,這里通過python腳本生成數據。步驟2:將python腳本上傳到集群系統/opt目錄下,通過pyhon命名執行,具體命令如下。其中/opt/data.py為腳本,/opt/datas/goods.log為產生文件,1000為goods.log產生的文本記錄數。python/opt/data.py/opt/datas/goods.log1000步驟3:將產生的goods.log分別傳輸到本地文件E:\\data目錄下以及上傳HDFS文件系統。Hdfsdfs-putgoods.log/hbase/input步驟4:通過HBaseshell創建表goods8.2商品訂單表設計8.2.2HBase的JavaAPI方式寫入HBase步驟1:新建Maven工程,步驟參考第五章內容。新建PutGoods類,在PutGoods中設置字符數組形式,將除rowkey外其他的字段表示為“列族:列名”形式。通過BufferedReader對象讀取文件每一行數據,調用Put對象將讀取到的一個字段依次放入到HBase表。步驟2:此時通過hbaseshell計算goods的行數,結果如下所示。通過統計發現python腳本生成的1000條記錄全部加載到HBase表中。hbase:005:0>count'goods'Currentcount:1000,row:99917143946071000row(s)Took2.1894seconds=>1000hbase:006:0>8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟1:清空HBase表中原有的goods表數據并查看表內容,命令如下。hbase:006:0>truncate'goods'Truncating'goods'table(itmaytakeawhile):Disablingtable...Truncatingtable...Took2.4671seconds8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟1:清空HBase表中原有的goods表數據并查看表內容,命令如下。hbase:006:0>truncate'goods'Truncating'goods'table(itmaytakeawhile):Disablingtable...Truncatingtable...Took2.4671seconds8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟2:新建Maven工程,步驟參考第七章內容。新建BulkLoadMR類,在BulkLoadMR類中分別編寫靜態類createHFile類。其中createHFile類繼承于Mapper,讀取HDFS數據,將結果裝到Put對象當中,并通過write函數將其寫入到context中。8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟2:新建Maven工程,步驟參考第七章內容。新建BulkLoadMR類,在BulkLoadMR類中分別編寫靜態類createHFile類。其中createHFile類繼承于Mapper,讀取HDFS數據,將結果裝到Put對象當中,并通過write函數將其寫入到context中。8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟3:將代碼打成jar包,打包過程參見案例7.2.2,打包完成上傳到服務器上執行。yarnjarhbase_mr-1.0-SNAPSHOT.jarcn.kmyz.week09.BulkLoadMR執行后查看HDFS文件存儲位置,結果如下所示。[root@masterdatas]#hdfsdfs-ls/hbase/outputFound2items-rw-r--r--3rootsupergroup02024-04-2921:30/hbase/output/_SUCCESSdrwxr-xr-x-rootsupergroup02024-04-2921:30/hbase/output/info8.2商品訂單表設計8.2.3BulkLoadMR方式寫入HBase步驟4:通過HBase中LoadIncrementalHFiles的.doBulkLoad方法對產生的HFile文件入庫。將代碼打成jar包,上傳集群運行,通過yarn調度執行提交任務。yarnjarhbase_mr-1.0-SNAPSHOT.jarcn.kmyz.week09.LoadData步驟5:此時通過hbaseshell計算goods的行數,結果如下所示。通過統計發現python腳本生成的1000條記錄全部加載到HBase表中。hbase:009:0>count'goods'Currentcoun
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外廣告史試題及答案
- 中醫方劑學試題及答案
- 學海大聯考2024-2025學年高二下生物期末預測試題含解析
- 車輛維修延誤損失賠償合同
- 智能制造廠房建設與運營維護合同集
- 2024年內蒙古蒙發能源控股集團招聘筆試真題
- 中介簽署的二手房買賣合同新的內容(31篇)
- 有關合資經營合同模板集錦(16篇)
- 供電指揮復習試題及答案
- 防斷復習試題含答案
- 龍巖市2025年高中高三畢業班五月教學質量檢政治試卷(含答案)
- 巴黎奧運會試題及答案
- 《液相色譜-質譜聯用》課件
- 城市道路交通標志和標線設置規范
- 高二語文期末復習重點知識歸納總結
- 大數據與商業決策的應用試題及答案
- 銀行業務外包合同
- 展覽館展示中心項目可行性研究報告
- 學做鹵菜簽合同協議
- 餐飲三關一閉培訓
- GB/T 15340-2025天然、合成生膠取樣及其制樣方法
評論
0/150
提交評論