Solr集群更新配置的方式

  solr集群中配置文件是經常更新的,頻率最高的也就是schema.xml和solrconfig.xml這兩個配置文件了,對于更新配置文件之前,我們先了解一下集群項目結構

  由于在集群模式下,solrconfig.xml和schema.xml等配置文件都由Zookeeper集群管理,所以本地項目中只保留單一shard分片,各個collections分片保存位置是solr根目錄下的server/solr/下,這個目錄下有一個solr.xml文件,然后可以隨便進入一個shard目錄,可以看到只有一個data目錄和一個core.properties文件,其中data目錄存放solr備份的索引數據、core.properties文件通過vim編譯可以看到這里面保存了shard序號,collections名稱,核子節點的名稱等等;另外官方文檔也給出了對應的solrcloud本地的目錄結構:

<solr-home-directory>/
  solr.xml
  core_name1/
    core.properties
    data/
  core_name2/
    core.properties
    data/

  這種結構和我們看到的是一樣的

  根據以上的目錄結構,所以我們更新配置必須將配置文件更新到Zookeeper集群才可以正常生效,之前在網上查過一些資料,好多都是無效或者過時的,用過一段時間的一個方法就是,首先登錄zookeeper,刪除原有的schema.xml文件,然后進行配置的上傳,上傳完成后并不是立即生效的,所以要依次重啟solr集群,首先說明這個方法是有效的,但是感覺太麻煩;另外由于生產過程中,隨便重啟solr服務就和重啟服務器一樣會造成一定的損失或者風險,所以這種方式明顯不合理,盡管我們一直在使用;實際上最好的解決方法在官方文檔已經給出了,這個需要我們自己慢慢探索,這里解決方法如下:

  比如我們修改schema.xml配置文件之后,根本不用登錄zookeeper刪除原有文件,文件會自動覆蓋,這里直接上傳即可,命令如下:

./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd putfile /solr/configs/my_config/schema.xml ../configs/conf/schema.xml

  參數putfile指定配置文件在zookeeper上的絕對路徑,這里注意是配置的路徑,不是collection的路徑,二者名稱不相同,后面跟的是修改之后本地schema.xml配置文件的路徑

  上傳文件之后,我們通過solr admin管理界面都可以看到文件內容更新了,有2種方法可以查看到

  

  

  但是我們去Update、Query時會出錯,瀏覽Schema字段時沒有更新,很明顯配置沒有生效;接下來就是最重要的一步,我們找到官方文檔的collections API位置,可以看到有一個如下的API:

  

  RELOAD這個API就是重新加載collection,不用重啟solr,點擊錨點可以看到具體使用解釋如下:

  

  可以看到解釋的很清楚了,經過上一步更新覆蓋了配置文件之后,我們只需要curl或者訪問以下鏈接即可:

http://localhost:8983/solr/admin/collections?action=RELOAD&name=my_collection

  訪問之后,返回success,就重新加載核心成功了,全部正常使用

?

  以上對于更新collections配置文件的這個過程其實也是解決問題的一個過程,首先我們應該充分理解我們使用的工具或者框架具體是做什么的或者說哪方面是有優勢的,以及更深的實現機制和原理,多去對比,這樣遇到問題的時候才可以做到知道這個問題而不會不知所措;另外有些地方不合理,是為什么不合理,會給生產帶來哪些不好的影響以及潛在的風險;然后帶著這些問題去搜索,建議查看官方文檔,特別是大數據方面直接在搜索引擎搜索出來的結果大多是互相抄襲、過時、甚至錯誤的,這個時候就要充分的去品味官方文檔中的解釋,然后去自己思考,這樣慢慢的自己的知識就健全了,慢慢的自己的內功也就提升了,相對來說也就慢慢的進入了高手的行列;對于初學者不知所措是很正常的,個人認為重要的還是堅持鍥而不舍的研究,只有這樣才可以跟隨技術的進步

  最后在學習工作中,總結一句話就是:永不放棄、知其然知其所以然、授人以魚,不如授之以漁

轉載于:https://www.cnblogs.com/freeweb/p/5282823.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373423.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java文本框雙擊可編輯_java swing 文本域雙擊變為可編輯

java swing如何實現文本域雙擊變為可編輯呢?給文本域添加鼠標事件監聽程序即可:resultTA1new AssistPopupTextArea();resultTA1.setEditable(false);resultTA1.setLineWrap(true);resultTA1.setWrapStyleWord(true);resultTA1.addMouseListener(new MouseAdapter() {Overridep…

點擊出現黑色背景的解決

-webkit-tap-highlight-color:rgba(0,0,0,0);轉載于:https://www.cnblogs.com/luckyXcc/p/6085582.html

OSGi簡介–模塊化Java

OSGi聯盟是這一擱淺的管理機構&#xff0c;它始于1999年。其最初目標是為網絡設備創建開放擱淺。 基于此思想&#xff0c;此規范也針對Java引入。 Eclipse在Java中是第一個。 他們于2004年6月推出了基于OSGi的Eclipse IDE。 OSGi是在Java中定義動態模塊的方法。 主要為Java實現…

HDU FatMouse's Speed 基本DP

題意&#xff1a;要求找到的體重遞增&#xff0c;速度遞減的老鼠&#xff0c;并且輸出最長的長度數&#xff0c;而且輸出各自的序列數。Special Judge 思路&#xff1a;先按體重由小到大排序&#xff0c;再找最長速度遞減序列。 轉移方程&#xff1a;mou[i].w>mou[j].w&am…

java xmpp openfire_搭建Xmpp服務器Openfire

step1、 安裝java環境這里是檢測是否安裝java的網頁如沒有安裝則進行以下步驟1、下載jdk7的mac版&#xff1a;jdk-7u79-macosx-x64.dmg2、安裝好之后&#xff0c;在命令行進入以下路徑查看#cd /Library/Java/JavaVirtualMachines/3、再查看你自己安裝的版本#ls版本為jdk-8u171-…

JavaFX移動應用程序最佳實踐,第1部分

到現在為止&#xff0c;所有對JavaFX感興趣的人都會知道&#xff0c;JavaFX Mobile發行了不久 前。 可以肯定的是&#xff0c;這真是令人難以置信。 我感到筋疲力盡&#xff0c;在發行期間我什至沒有精力去寫博客…… 但是到目前為止&#xff0c;我感到很恢復&#xff0c;并且希…

Spark程序運行報錯解決(1)

報錯內容&#xff1a;System memory 259522560 must be at least 4.718592E8. Please use a larger heap size. 解決&#xff1a;Window——Preference——Java——Installed JREs——選中一個Jre 后 Edit 在Default VM arguments 里加入&#xff1a;-Xmx512M 轉載于:https://w…

java setsolinger_java socket 的參數選項解讀(轉)

在MulticastSocket的源代碼里有設置多播的方法&#xff1a;public void setInterface(InetAddress inf) throwsSocketException {if(isClosed()) {throw new SocketException("Socket is closed");}checkAddress(inf, "setInterface");synchronized(infLoc…

【轉】Linux終端下 dstat 監控工具

轉自https://linux.cn/article-3215-1.html dstat 是一個可以取代vmstat&#xff0c;iostat&#xff0c;netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的局限并增加了一些另外的功能&#xff0c;增加了監控項&#xff0c;也變得更靈活了。dstat可以很方便監控系統…

Tomcat和IntelliJ –在webapps文件夾之外部署war文件

目前&#xff0c;我正在開發一個Android應用程序&#xff0c;該應用程序需要云中托管的大量REST服務來支持。 我基于對Java&#xff0c;Groovy以及最重要的Spring的支持選擇了Google App Engine 。 我開發了一個基于Spring MVC的REST應用程序&#xff0c;并使用ContentNegotiat…

[HDU1232] 暢通工程 (并查集 or 連通分量)

Input 測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數&#xff0c;分別是城鎮數目N ( < 1000 )和道路數目M&#xff1b;隨后的M行對應M條道路&#xff0c;每行給出一對正整數&#xff0c;分別是該條道路直接連通的兩個城鎮的編號。為簡單起見&#xff0c;城鎮…

java jdbc連接db2數據庫_Java連接db2數據庫(常用數據庫連接五)

1.安裝好db2數據庫&#xff0c;并建立表如下&#xff1a;2.eclipse或myeclipse中建立工程并導入java連接db2所需要的jar包db2java.jar 下載地址&#xff1a;http://download.csdn.net/detail/whzhaochao/64149813.建立iConn接口&#xff0c;代碼如下&#xff1a;package com.zh…

在Windows上,遷移VisualSVN server

最近在搭建自動化測試框架&#xff0c;順便了解了一下SVN的搭建。對于一般的使用場景&#xff0c;VisualSVN還是挺方便的&#xff0c;而且上手特別快。 由于是第一個demo&#xff0c;后期要遷移到其他服務器上面&#xff0c;所以就熟悉了一下server的遷移。以下是一些記錄信息&…

練習腳本三:日志清除

日志清除 #!/bin/bash #清除日志腳本&#xff0c;版本2 LOG_DIR/var/logROOT_UID0 #$UID為0的時候&#xff0c;用戶才具有root用戶的權限#判斷是否使用root用戶來運行 if [ "$UID" -ne "$ROOT_UID" ];thenecho "Must be root to run this script.&qu…

Oracle通過邀請Weaver和Chin推動JavaFX向前發展

我昨天發布了愚人節帖子&#xff0c;內容涉及加入NASA協助探索紅色大行星。 那個帖子與事實相距不遠... NASA開發的技術的所有細節都是100&#xff05;準確的。 哎呀&#xff0c;即使我辭職也是事實&#xff01; 唯一不正確的部分是我將加入的公司。 在NASA協助探索火星的工作也…

java privilege的用法_java反射--注解的定義與運用以及權限攔截

自定義注解類編寫的一些規則:1. Annotation型定義為interface, 所有的Annotation會自動繼承java.lang.Annotation這一接口,并且不能再去繼承別的類或是接口.2. 參數成員只能用public或默認(default)這兩個訪問權修飾3. 參數成員只能用基本類型byte,short,char,int,long,float,d…

WinForm------TextEdit只能輸入數字

代碼: this.textEdit1.Properties.Mask.EditMask "\d"; this.textEdit1.Properties.Mask.MaskType MaskType.RegEx; 轉載于:https://www.cnblogs.com/tianhengblogs/p/6093634.html

mysql使用隨筆

mysql 刪除語句 &#xff1a;delete from 表名 where 條件; 例如 delete from tbuserinfo where id 2;mysql 查詢語句 &#xff1a;select * 列名 from 表名 where 條件;mysql 模糊查詢 &#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE "3%&qu…

JavaFX:創建Sprite動畫

到目前為止&#xff0c;盡管我的大多數文章都涉及JavaFX屬性和綁定&#xff0c;但今天我想寫一講我也致力于JavaFX運行時的另一部分&#xff1a;動畫API。 在本文中&#xff0c;我將解釋如何在JavaFX中編寫自定義動畫&#xff0c;以及如何使用這種方法為Sprite動畫創建類。 &am…

java tick_Java中的Clock tick()方法

可以使用tick()Java中Clock類中的方法在所需的時間范圍內舍入基本時鐘的瞬間。此方法需要兩個參數&#xff0c;即基本時鐘和滴答的持續時間。同樣&#xff0c;返回在所需持續時間內四舍五入的基本時鐘時刻。演示此的程序如下所示-示例import java.time.*;public class Main {pu…