1. 程式人生 > >solr4.2.1升級到solr4.7.2遇到的所有問題

solr4.2.1升級到solr4.7.2遇到的所有問題

1、建立colletion經常timeout,因為solr.xml配置的超時時間太短。配置時間變大,為了適用所有node,將solr.xml上傳到zk,命令:

sh zkcli.sh  -zkhost  zookeeper1:42181/on_other_47 -cmd putfile /solr.xml $name然後配置:

-Dsolr.solrxml.location=zookeeper就可以每個node都拿到。我們超時配置成5s其實有時也會出現timeout,但其實colletion已經生成。

2、delete collection異常,首先要保證colletion的狀態都是正常的,再做delete操作,並且最好加上&deleteInstanceDir=true,這樣下次建立不會失敗。4.2.1其實有時候出現節點down然後起不來的問題,其實只要根據clusterstate.json修改solr.xml和solr資料夾下的replica目錄對應即可。

3、刪除zk叢集資訊的時候,出現刪除不了節點的情況,delete和rmr都不行,原因:有一臺solr node沒有關掉,jetty假死,zk無法清除overseer。最好還是不要去操作zookeeper節點去幹預叢集,比如修改clusterstate.json。

4、新的solr4.7.0使用的是log4j而不是slf4j,編寫zk上傳指令碼時,要換成新的jar包,並且在java編譯環境裡面加上log4j.properties檔案路徑引數。

如:$JVM  -classpath "$sdir/../lib47/*" -Dlog4j.configuration="file:./log4j.properties" org.apache.solr.cloud.ZkCLI ${1+"

[email protected]"}

5、buffers/cache 佔用過多,導致Linux kill掉節點;在記憶體或者硬碟不充足的情況下,一臺機不要起過多的節點,導致記憶體使用完,因為當前solr會使用記憶體對映,導致buffer/cache全部使用完。

6、建立userRecommendIds失敗時,居然首先會在node上面建立core,如果不刪除掉,下次建立有可能失敗。解決方案:手動刪掉建立collection失敗的時候建立的core。而且solr4.7.2 的solr.xml沒有core的資訊,它的資訊在每個replication中的core.properties檔案中;而solr4.2在solr.xml,所有core資訊都在一起,需要一併去掉。

7、solr4.7.2自帶了hadoop包,有4個,如果你的solr4.2.1上有hadoop相關擴充套件,會報錯。比如我們的handler裡有取hbase資料,目前做法是,這一部分的叢集暫不升級。

8、編寫solr擴充套件時要注意solr自帶了很多包,有可能會有衝突,比如上面說的hadoop包,還有httpclient的包等。

9、jstat -gccause pid 1000來監控GC情況很方便,可發現很多問題;目前我們使用jdk最新版,新的GC演算法。

10、solr4.7.2的optimize操作非常緩慢,因為它採用的是序列的。我們目前針對大的索引做了優化,建立時採用http方式並行優化,並且擴充套件實現離線索引。

11、實踐發現某個collection主分片所在節點A機和其副本所在節點B機會保持一個長連線,TCP協議的,CLOSE_WAIT狀態。這樣有可能發生一個小概率事件,即你再起一個node的時候,發現端口占用了,因為剛好被這個長連線隨機選中佔用。

12、solr4.7.2分詞相關的類有所改變,需要對照原始碼類進行修改,比如過濾器Factory類等。

13、將舊的建索引程式改成新的時候,報錯:Invalid UTF-8 middle byte 0xe0,位置是delete操作*:*。在solr4.2.1中,update配置的handler是:

<requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />沒有問題;但是solr4.7.2中就不行了,必須配置:

<requestHandler name="/update" class="solr.UpdateRequestHandler" />

14、4.7.2不支援BigInteger和BigDecimal型別資料提交,但是我們之前4.2.1是支援的,所以認為這是一個Bug;確實也有人在jira上提交這個Bug,不過是說DataInputHandler這個模組的。

15、solr4.7.2的clusterstate.json的replication狀態不會改變,而且ClusterState.getCollections獲取的也是狀態始終不變的。但是有一個可以解決這個問題,結合liveNodes即可判斷,但是結果就是除了ACTIVE就是DOWN這2中而已。

相關推薦

solr4.2.1升級solr4.7.2遇到的所有問題

1、建立colletion經常timeout,因為solr.xml配置的超時時間太短。配置時間變大,為了適用所有node,將solr.xml上傳到zk,命令: sh zkcli.sh  -zkhost  zookeeper1:42181/on_other_47 -cmd p

11.2.0.1升級到11.2.0.4報錯之中的一個:UtilSession failed: Patch 9413827

popu undle util all weight 文檔 fail sta ack UtilSession failed: Patch 9413827 requ

yum安裝PHP升級7.2版本

yum安裝PHP升級到7.2版本 解除安裝原來低版本的PHP rpm -qa |grep php|xargs rpm -e 更新yum源 //CentOS/RHEL 7.x rpm -Uvh https://dl.fedoraproject.org/pub/epel/e

Oracle 10 2 0 1 升級到 10 2 0 4

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android Studio3.2.1升級刨坑記錄

Android Studio出了3.2.1,我用的是2.3,所有決定升級一下,看看如何 為了保險一點,下載了官方的解壓版本,也就是說不含sdk,下載android-studio-ide-181.5014246-windows.zip 共999MB 解壓後直接執行,D:\android\android-st

Android Gradle外掛版本3.2.1升級問題記錄

Android Gradle外掛版本3.2.1升級問題記錄 問題1:productFlavors渠道名稱的問題 問題2: butterknife註解器的問題 問題3:buildTools版本的問題

PHP版本升級:從php7.1升級到php7.2

檢視現在PHP的版本 $ php -v PHP 7.1.2 (cli) (built: Mar 11 2017 23:57:39) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c

Asp.net core 學習筆記 2.1 升級2.2

contex basepath nbsp odata art esp apps ack 一個 首先跟著官網 step by step https://docs.microsoft.com/en-us/aspnet/core/migration/21-to-22?view=

centos7 升級gcc 7.2

1、gcc安裝包獲取 gcc-7.2 版本下載地址:http://gcc.parentingamerica.com/releases/gcc-7.2.0/gcc-7.2.0.tar.gz 2、安裝依賴包 isl-0.16.1.tar.bz2 gmp-6.1.0.tar.bz

Oracle 10.2.0.1 升級到 10.2.0.4

--********************************* -- Oracle 10.2.0.1 升級到 10.2.0.4 --*****************************

asp.net core 2.1 Mysql 資料庫遷移,坑記錄

首先來一段錯誤immodeMacBook-Pro:tz.efcontext immo$ dotnet ef database update Unable to create an object of type 'AppDbContext'. Add an implementa

題8:輸入5個數(含負數、小數)將它們按由小到大的順序排列起來 提示:需要排數的數字通過引數傳遞進來, 例如:輸入:./a.out -1 2.1 -3 5 7 輸出: -3 -1 2.1

題目:輸入5個數(含負數、小數)將它們按由小到大的順序排列起來 提示:需要排數的數字通過引數傳遞進來, 例如:輸入:./a.out -1 2.1 -3 5 7 輸出: -3 -1 2.1 #include <stdio.h> #include &l

使用HBase Indexer建立二級索引(整合最新版本的HBase1.2.6及Solr 7.2.1)

這段時間整合HBase,需要為HBase建立二級索引,方便資料的查詢使用,Solr權威指南上面有Hbase與Solr的整合章節,照著書上以及網上的說明折騰了很近才配置成功,HBase Indexer已經有1年多沒有更新了,整合最新的HBase1.2.6,solr7.2.1有

Struts從2.1升級2.3版本過程

 應客戶要求將版本升級到安全版本。  http://struts.apache.org/download   官網下載地址。 http://struts.apache.org/[preferred]struts/2.3.31/struts-2.3.31-all.zip  

將 ASP.NET Core 2.1 升級到最新的長期支援版本ASP.NET Core 3.1

目錄 前言 Microsoft.AspNetCore.Mvc.ViewFeatures.Internal 消失了 升級到 ASP.NET Core 3.1 專案檔案(.csproj) Program.cs Startup.cs ViewBag 與 Razor Pages 第一次接觸 ViewBag 與 R

.Net Core 2.1 升級3.1 問題整理

         隨著技術的不斷拓展更新,我們所使用的技術也在不斷地升級優化,專案的框架也在不斷地升級,本次講解 .net core 2.1  升級到3.1所需要注意的事項;    當專案框架升級後,所有的Nuget引用也會對應變

tomcat 報錯出現 jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

導入 解決方案 servle 問題 loaded ade 項目 再次 文件 這是你導入的jar的問題 一般情況下是導入的包tomcat已經存在 也就是說 不需要你再次導入 所以你現在要做的是刪除你所導的包 解決方案:刪除你的web項目導入的這兩個jar文件 jsp-ap

kibana 6.2.4 升級 6.4.2

system 服務器 serve 新版本 yml 刪除 arc sof last kibana 6.2.4 升級 6.4.2 升級前提: 後端 elasticsearch 集群版本已經升級至 6.4.2 版本. 升級前先查看版本: /usr/share/kibana/bi

Atitit 微服務的一些理論 目錄 1. 微服務的4個設計原則和19個解決方案 1 2. 微服務應用4個設計原則 1 2.1. AKF拆分原則 2 2.2. 前後端分離 2 2.3. 無狀態服務

Atitit 微服務的一些理論   目錄 1. 微服務的4個設計原則和19個解決方案 1 2. 微服務應用4個設計原則 1 2.1. AKF拆分原則 2 2.2. 前後端分離 2 2.3. 無狀態服務 2 2.4. Restful通訊風格 2 3. 微服

CentsOS系統glibc-2.12升級到glibc-2.14

前提:有一個專案是給安卓生成apk包的服務,簡稱打包服務。因為測試機上centos預設的glibc版本是2.12,好多程式執行出錯,保障服務執行故進行升級 檢視系統glibc庫版本可用下面命令: # strings /lib64/libc.so.6 |grep GLIB