2017-04-04 110 views
0

我們遇到了Solr批量索引的一些性能問題:我們有一個由4名工作人員組成的集羣,每個工作人員都配有32個內核和256GB的RAM。 YARN被配置爲使用100個vCore和785.05GB內存。 HDFS存儲由通過10Gb接口連接的EMC Isilon系統管理。我們的集羣運行CDH 5.8.0,具有Solr 4.10.3的功能,並且它已被Kerberized化。Solr索引性能

利用目前的設置,說到壓縮數據,我們可以使用MapReduce作業索引每天大約25GB和每月500GB。其中一些作業每天都在運行,並且需要將近12小時才能索引15 GB的壓縮數據。特別是,MorphlineMapper作業大約持續5個小時,TreeMergeMapper持續大約6個小時。

這些表演是否正常?你能建議我們做一些調整來改善我們的索引表現嗎?

謝謝

斯特凡諾

+1

基準和剖析一切,並找出你的瓶頸在哪裏。修復這些。重複。 –

+0

這個問題實在太廣泛了,我沒有答案,我同意@AndrewHenle。開始基準測試並逐個分析您的所有架構。或者請編輯該問題,將其限制爲具有足夠詳細信息的特定問題以確定適當的答案。 – freedev

回答

0

我們使用的是MapReduceIndexerTool和網絡沒有任何問題。我們正在從HDFS中讀取壓縮文件並將其解壓縮到morphline中。這是我們運行腳本的方式:

cmd_hdp=$(
HADOOP_OPTS="-Djava.security.auth.login.config=jaas.conf" hadoop --config /etc/hadoop/conf.cloudera.yarn \ 
jar /opt/cloudera/parcels/CDH/lib/solr/contrib/mr/search-mr-*-job.jar \ 
org.apache.solr.hadoop.MapReduceIndexerTool \ 
-D morphlineVariable.ZK_HOST=hostname1:2181/solr \ 
-D morphlineVariable.COLLECTION=my_collection \ 
-D mapreduce.map.memory.mb=8192 \ 
-D mapred.child.java.opts=-Xmx4096m \ 
-D mapreduce.reduce.java.opts=-Xmx4096m \ 
-D mapreduce.reduce.memory.mb=8192 \ 
--output-dir hdfs://isilonhostname:8020/tmp/my_tmp_dir \ 
--morphline-file morphlines/my_morphline.conf \ 
--log4j log4j.properties \ 
--go-live \ 
--collection my_collection \ 
--zk-host hostname1:2181/solr \ 
hdfs://isilonhostname:8020/my_input_dir/ 
) 

的MorphlineMapper階段採取一切可用的資源,在TreeMergeMapper只需要一對夫婦的容器。

我們暫時不需要查詢,我們只需要索引歷史數據。我們想知道是否有一種方法可以加快索引時間,然後在索引完成時優化搜索以進行搜索。

謝謝