轉載請注明出處www.cnblogs.com/hsxian!
總述
這是一系列針對 .net core (c#) 讀取 hbase 的教程。本人苦於找不到 c#的原生 hbase 客戶端,多番尋覓之下有一個相對折中的辦法——通過 thrift 跨平台調用。這和 java 原生客戶端效率比起來仍然有一定的差距,可解燃眉之急。若有高人知道更加有效的方式,望請告知。
本系列主要分三個部分:
- hbase 的相關准備工作
- thrift 下 c#客戶端的制作
- c# for hbase 客戶端的使用
首先進入第一部分:habse 的相關准備工作
說明
為了使個人更易於使用 hbase,減少 hbase 的部署壓力,筆者已經走通了在 docker 集群中運行 hbase 的歷程。只僅僅作為個人測試使用,具體業務生產環境請物理機集群搭建 hbase。額外的,該集群上還安裝了 scale、Hadoop、zookeep、spark 等。如需刪減,請自行更改 dockerfile 文件及其相關配置。此外,本文默認您已經了解 docker、linux、hbase 的相關知識。
centos-ssh 基礎鏡像准備
該基礎鏡像基於 centos,里面安裝了 ssh 服務,用於免密登錄的准備。為了簡便,其中的密碼皆為弱密碼,生產環境請注意安全工作!!!dockerfile 可從 github 上找到,直接運行進行鏡像構建即可。可從readme找到構建信息。
大數據(已經包含 hbase)集群鏡像的准備
該鏡像基於上一步的 centos-ssh 鏡像,所以請注意基礎鏡像名和上一步的構建鏡像名對應。該鏡像制作過程中利用了多個腳本輔助完成,因此省略了大部分 hbase 的搭建工作。但不可避免的仍然需要一些 docker 的准備工作,只要是熟悉 docker 操作的都能明白其中的操作意義。具體請參看readme
啟動集群
由上面兩步,我們已經得到了一個大數據集群。節點名稱分別為master
、slave01
和slave02
。分別登錄進各個節點,執行su spark
切換至 spark 用戶。選擇啟動腳本后等待幾分鍾等待集群啟動。一般情況下,在節點master
命令行中執行jps
查看進程啟動情況。可得到如下進程:
jps
2224 ThriftServer
1042 NodeManager
917 ResourceManager
2470 Jps
1463 Master
55 QuorumPeerMain
248 NameNode
377 DataNode
604 SecondaryNameNode
2078 HMaster
其中HMaster
為 hbase 的 master 進程,如啟動失敗,可嘗試readme步驟 6.2 中啟動 habse 的命令。瀏覽網頁http://localhost:16010/master-status查看 habse 啟動情況。一切正常可在 Region Servers分類下面看到從節點slave01
和slave02
。
ThriftServer
為我們跨平台調用的媒介進程。默認端口為 9090。
總結
雖然該文章看上去比較簡短。但大部分工作都在於兩個鏡像構建中的 readme 文件中。該鏡像用於個人大數據學習是足夠了的,比如筆者用該鏡像中的 spark 進行數據透視的實驗就很有用。可以參看項目StatisticalSample,如有幫助,記得給個星星(⊙o⊙)哦。在前不久,.net陣營中也引入了spark。項目.NET fo rApache® Spark™剛開始起步,目前還只能在本地運行,無法提交到遠程集群執行。希望它越來越好吧。
初次使用,可能會遇到各種困難,請付諸於耐心,祝君好運。
完整的鏡像啟動后,可以瀏覽各個模塊的管理頁面:
- YARN 的 http 默認端口http://localhost:8088/cluster
- Spark 的 http 默認端口http://localhost:8900/
- Hadoop 的 http 默認端口http://localhost:50070/dfshealth.html#tab-overview
- Hbase 的 http 默認端口http://localhost:16010/master-status
以下沒有頁面:
- fs.defaultFS 默認端口http://localhost:9000/
- thrift 的 http 默認端口http://localhost:9090/