我有一些數據,我必須每天攝入Solr,每天的數據大概是10-12 GB,而且我必須爲最後一個數據庫運行追趕工作年,每天大約10-12 GB的數據。在Solr中插入大量數據的最佳方法
我正在使用Java,我需要在我的數據中進行部分更新評分,如果同一個唯一關鍵字再次到達,我使用帶有TextField的docValues。
https://github.com/grossws/solr-dvtf
最初,我使用哪個花了很多的時間(從S3讀取和在60K分批加入到Solr)順序方法。
我發現這個回購協議:
https://github.com/lucidworks/spark-solr,
,但我不明白的執行情況,我需要修改字段數據;一些得分邏輯,所以寫了自定義的火花代碼。
然後,我在Solr中創建了4個節點(在同一個IP上),並使用Spark插入數據,最初由Spark創建的分區比Solr節點多,而且指定的'executors'不僅僅是節點,所以它花了更多的時間。
然後,我將RDD重新分區爲4個(Solr節點數量),指定了4個執行程序,然後插入花費更少的時間並且成功,但是當我運行相同的一個月時,一個或多個Solr節點繼續運行在HD上我有足夠的可用空間,並且很少我的RAM使用結束。
請給我一個解決這個問題的方法,我有8個核心CPU, 或者我應該爲Solr上的不同節點使用不同的系統?
謝謝!
我能否自定義添加到Solr?,因爲我將對字段數據進行一些修改以提高文檔評分。 –
而且這也是一個很好的選擇https://github.com/lucidworks/spark-solr ?,我沒有正確理解它,所以使用spark編寫自定義代碼。 –
你可以使用spark-solr,但是會遇到性能問題。 Lucidworks/spark-solr是一個很棒的api嘗試,如果這適合你想要處理的數據量。 –