最近的工作我很著重從hbase的使用和系統運維這兩個角度進行總結,因為工作繁忙所以沒法進一步深入查閱資料進行總結,今天還是和以前備忘錄一樣,將自己覺得有所領悟的知識點先寫下來。
hbase的使用的確很神奇,我以前自學hbase感覺困難重重,現在發現還是沒有實戰經驗,也沒有接觸很好的實踐場景,雖然困難重重,但是有一點我之前還是理解到位的,那就是hbase和關聯式資料庫相比是一個更加鬆散的資料結構,hbase的優勢就是在建表的階段就可以充分考慮資料查詢的效率問題。這句話可能不是太好理解,等以後有時間我再展開分析。
建立一張hbase的表包含rowkey、列族、列最後是列對應的內容,rowkey,列族以及列的設計應該包含資料索引的功能,例如人員身份資訊表,我們可以把不同身份資訊包含在rowkey裡,這樣當進行一個具體業務查詢時候就可以從業務概念上縮小資料範圍,而hbase儲存資料是按照hregion進行儲存的,而hregion又是按照列族進行儲存,因此合理列族設計也會使得查詢資料量變的更小。當然這些都是批量查詢,如果我們要查詢具體的某一條資料了,那麼我們就要設計更加精確的索引,這個問題就更加有意思了。這些還需要繼續研究和琢磨下。
大資料技術日新月異,傳統的hadoop技術已經顯得有點老套了,hadoop生態圈的技術已經超出了java原始語言的範疇,就像spark使用了scala語言,這也說明程式語言也在發生巨大的演進了。程式設計師的痛苦就是在於你要不斷的學習,不斷的更新自己的知識結構,這個要把它當作一個習慣。
我現在面對一個好機遇可以深入學習下hadoop相關技術,我應該首先要把基礎打好,也就是說像spark和storm這樣的新技術我不應該貪戀新而勉為其難先學,還是從hadoop基礎技術開始,這點藥切記。
以前專職做了許久前端,因此對於服務端系統運維接觸並不深入,最近好好做了幾回運維工程師的事情,安裝linux伺服器,安裝程式,檢視日誌,監控系統和軟體的執行情況,這些工作讓我發現一個優秀的系統運維人員其實並不簡單,這裡特別需要你對作業系統的知識有深入瞭解和運用,而且運維的工作對於程式後續的效能優化至關重要,因此linux的操作也是今後要加固的重點,而且我現在發現理解作業系統的知識對於學習好hadoop技術以及網路程式設計也是至關重要。