由于公司業務的需要,需要對大量(上億)的資料進行分詞并生成索引檔案,目前用了4臺solr集群來提供查詢服務,聽說性能還很不錯,但是考慮到資料量還會不斷增加,每天都會有40G的資料需要加入索引,索引檔案的不斷擴增最侄訓是會成為系統的瓶頸,現在考慮使用hadoop的dhfs檔案系統來存盤索引檔案,但是在網上查了不少資料,有不少網友說hadoop的hdfs檔案系統不支持隨機寫(lucene的索引[size=16px]是隨機讀寫的),解決方案是先把索引寫在本地或記憶體,再把本地或記憶體中的索引寫在hdfs系統中, 查詢索引的時候也是先從hdfs讀取索引先寫入記憶體,在從記憶體中進行查詢...
疑問:資料量太大40G,寫入到記憶體肯定不現實, 先寫入本地再同步到hdfs,那查詢的時候先從hdfs把索引寫到本地磁盤,這個效率肯定也是不高的,跪求大神對這樣的需求有什么好的解決方案.[/size]
uj5u.com熱心網友回復:
以前曾經寫過這一塊的代碼, 是通過mapreduce生成Lucene檔案, 然后使用solr進行展現的, solr可以使用hdfs作為存盤。uj5u.com熱心網友回復:
另外有接觸過ElasticSearch, 這個的分布式集群不像Hadoop那么麻煩, 他也是基于Lucene的第三方開源解決方案,可以嘗試一下,另外之前說的MR生成Lucene如有需要可以聯系我(2012年寫的)。uj5u.com熱心網友回復:
非常感謝提供了一個解決方案,具體實作還有待慢慢研究,有了方向就好了,thxuj5u.com熱心網友回復:
Solr可以直接訪問hdfs的檔案嗎?uj5u.com熱心網友回復:
同樣的問題不知道則呢解決,只是準備先把索引寫到hdfs,然后再拉取到磁盤。但是直接寫hdfs比直接寫磁盤少了segment檔案,不知道怎么回事。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/64482.html
標籤:云存儲
上一篇:AWS S3 使用的jar
