hadoop異構儲存+lucene索引

hgs19921112發表於2019-08-27

異構儲存這個詞或許很多人並不陌生,但如果一個搜尋引擎將Hadoop 得異構儲存和索引整合會有什麼效果呢?

         我們先來看一下hadoop 異構儲存的相關概念:

1.        什麼是hadoop 的異構儲存

Hadoop 2.6.0 版本中引入了一個新特性——異構儲存。異構儲存關鍵在於異構2 個字,異構儲存可以根據各個儲存介質讀寫特性的不同發揮各自的優勢,比如最普通的Disk 磁碟;而對於熱資料而言,可以採用SSD 的方式進行儲存,這樣就能保證高效的讀效能,在速率上甚至能做到十倍於或百倍於普通磁碟讀寫的速度。

 

2.        目前hadoop 支援的儲存型別如下:

* RAM_DISK 儲存在記憶體

* SSD  儲存在固態硬碟
* DISK(default)  儲存在普通磁碟(預設)
* ARCHIVE

按照RAM_DISK->SSD->DISK->ARCHIVE 的順序,存取速度由快到慢,單bit 儲存成本由高到低。

2.1 命令的使用

0. hdfs storagepolicies  -listPolicies (檢視支援的儲存策略)

1.hadoop fs -mkdir /data/ssddata (建立目錄)

2.hdfs storagepolicies -setStoragePolicy -path /data/ssddata –policy One_SSD

(將目錄設定為一份存在ssd 上面,其他的副本存在普通的磁碟上面,以後儲存在該資料夾下面的檔案的塊副本都會存一份在ssd 上面)

3.hdfs storagepolicies -getStoragePolicy -path /data/ssddata( 檢視該目錄的儲存策略,結果如下圖)

4. 取消設定的儲存策略,建立檔案的時候預設為unspecified ,那麼該命令可以將其修改為預設值

hdfs storagepolicies -unsetStoragePolicy -path /data/normal/ip2.txt

 

2.2 在上一步中對檔案設定的儲存策略只是對檔案儲存型別做了標識,還需要透過hdfs mover 對其檔案儲存型別進行改變,命令如下

hdfs mover [-p <files/dirs> | -f <local file name>],

3.        索引

在資料檢索中,給資料新增索引是一個重要環節,傳統中關係型資料庫大多透過建索引來達到快速檢索的效果,OLTP 資料庫大多是B 或者B+ 樹索引。想必大家都知道lucene, 它的索引是倒排索引(該概念不再這裡敘述),不同的分詞使它的全文檢索功能很強大。諸如大家熟知的Elasticsearch 也是在以lucene 做索引引擎。但遺憾的是ES 並不支援異構儲存,且ES 在面臨單個分片資料量超大時也會存在瓶頸問題。

4.          透過上面兩個方面的分析,我們可以試著設想,是否能夠做一個這樣的OLAP 資料庫:可以將資料存放在hdfs 上,並且資料透過lucene 做了索引,那麼這樣檢索資料的速度會快上百倍、千倍,並且它還實現了異構儲存的方案,熱資料存放在SSD ,並且可以定期自動的遷移,這樣可以大大節省硬體成本。如果,如果這個資料庫還實現了sql 查詢的方式,那豈不是超爽,學習成本也將大大下降,只需要掌握SQL 語法就可以玩轉大資料啦!Emmmmm 理想很豐滿,現實...... 現!實!也!有!網上查詢還真有這樣的產品,錄信數軟 LSQL ,看到介紹還不錯,更不需要像ES 那樣要學習他的介面,還有Restful 風格的查詢介面。想當年年少不知頭髮貴,一入IT 深似海。有這樣的產品,媽媽再也不用擔心我的頭髮掉光啦^_^ !附上官網連結: ,還可以免費試用噢!為了我們滴頭髮,還不快快了解一哈^_^


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2655070/,如需轉載,請註明出處,否則將追究法律責任。

相關文章