HBase實操 | 如何使用HBase儲存文字檔案
阿新 • • 發佈:2018-11-16
1.文件編寫目的
Fayson在前面的文章中介紹了《如何在CDH中使用Solr對HDFS中的JSON資料建立全文索引》和《如何使用Flume準實時建立Solr的全文索引》,假如我們有大量的文字檔案,我們應該如何儲存到Hadoop中,並實現文字檔案的全文檢索呢。為了介紹如何對文字檔案進行全文檢索,本文會先介紹如何使用HBase儲存文字檔案。雖然HDFS中也可以直接儲存這種非結構化資料,但是我們知道像這種文字檔案,一般都是10KB~1MB的小檔案,因為HDFS並不擅長儲存大量小檔案,所以這裡選擇HBase來儲存。
內容概述
1.檔案處理流程
2.準備上傳檔案的Java程式碼
3.執行程式碼
4.Hue中查詢驗證
測試環境
1.RedHat7.4
2.CM5.14.3
3.CDH5.14.2
4.叢集未啟用Kerberos
2.檔案處理流程
1.如上圖所示,Fayson先在本地準備了一堆記事本檔案,有中文內容的,英文內容的,有中文名的,也有英文名的。
中文內容示例
2.然後通過Java程式遍歷本地的資料夾所有文字檔案入庫到HBase,在入庫過程中,我們讀取文字檔案的檔名作為Rowkey,另外將整個文字內容轉為bytes儲存在HBase表的一個column裡。
3.最後可以通過Hue來進行檢視文字檔案的內容,當然你也可以考慮對接到你自己的查詢系統。
3.準備上傳檔案的Java程式碼
1.首先是準備Maven檔案
2.準備上傳檔案到HBase的Java程式碼 2.準備上傳檔案到HBase的Java程式碼
2.準備上傳檔案到HBase的Java程式碼
4.執行程式碼
1.首先我們在HBase中建一張表用來儲存文字檔案
2.配置客戶端Windows機器的hosts檔案
3.注意修改程式碼中的配置項,如文字檔案所在的目錄,叢集的Zookeeper地址等。Fayson這裡為了使用方便,就不打成jar包到叢集執行,直接在Eclipse裡執行程式碼。
4.到HBase中進行查詢確認
一共21條,表明全部入庫成功
5.Hue中查詢驗證
1.從Hue中進入HBase的模組
單擊某個column,可以檢視整個文字內容
2.查詢某一個Rowkey進行測試
Fayson在前面的文章中介紹了《如何在CDH中使用Solr對HDFS中的JSON資料建立全文索引》和《如何使用Flume準實時建立Solr的全文索引》,假如我們有大量的文字檔案,我們應該如何儲存到Hadoop中,並實現文字檔案的全文檢索呢。為了介紹如何對文字檔案進行全文檢索,本文會先介紹如何使用HBase儲存文字檔案。雖然HDFS中也可以直接儲存這種非結構化資料,但是我們知道像這種文字檔案,一般都是10KB~1MB的小檔案,因為HDFS並不擅長儲存大量小檔案,所以這裡選擇HBase來儲存。
內容概述
1.檔案處理流程
2.準備上傳檔案的Java程式碼
3.執行程式碼
4.Hue中查詢驗證
測試環境
1.RedHat7.4
2.CM5.14.3
3.CDH5.14.2
4.叢集未啟用Kerberos
2.檔案處理流程
1.如上圖所示,Fayson先在本地準備了一堆記事本檔案,有中文內容的,英文內容的,有中文名的,也有英文名的。
中文內容示例
2.然後通過Java程式遍歷本地的資料夾所有文字檔案入庫到HBase,在入庫過程中,我們讀取文字檔案的檔名作為Rowkey,另外將整個文字內容轉為bytes儲存在HBase表的一個column裡。
3.最後可以通過Hue來進行檢視文字檔案的內容,當然你也可以考慮對接到你自己的查詢系統。
3.準備上傳檔案的Java程式碼
1.首先是準備Maven檔案
2.準備上傳檔案到HBase的Java程式碼 2.準備上傳檔案到HBase的Java程式碼
2.準備上傳檔案到HBase的Java程式碼
4.執行程式碼
1.首先我們在HBase中建一張表用來儲存文字檔案
2.配置客戶端Windows機器的hosts檔案
3.注意修改程式碼中的配置項,如文字檔案所在的目錄,叢集的Zookeeper地址等。Fayson這裡為了使用方便,就不打成jar包到叢集執行,直接在Eclipse裡執行程式碼。
4.到HBase中進行查詢確認
一共21條,表明全部入庫成功
5.Hue中查詢驗證
1.從Hue中進入HBase的模組
單擊某個column,可以檢視整個文字內容
2.查詢某一個Rowkey進行測試
本文所使用的程式碼原始碼GitHub地址:
https://github.com/fayson/cdhproject/blob/master/hbasedemo/src/main/java/com/cloudera/hbase/Text2HBase.java
https://github.com/fayson/cdhproject/tree/master/hbasedemo/full-text-index
大家工作學習遇到HBase技術問題,把問題釋出到HBase技術社群論壇http://hbase.group,歡迎大家論壇上面提問留言討論。想了解更多HBase技術關注HBase技術社群公眾號(微訊號:hbasegroup),非常歡迎大家積極投稿。
HBase技術交流社群 - 阿里官方“HBase生態+Spark社群大群”點選加入:https://dwz.cn/Fvqv066s