Win7下單機版的偽分散式solrCloud環境搭建Tomcat8+ solr-6.3.0+zookeeper3.4.6
Win7下單機版的偽分散式solrCloud環境搭建Tomcat8+ solr-6.3.0+zookeeper3.4.6
一、tomcat8+solr6.3.0
1、軟體環境配置
環境: Windows 7
tomcat-8.0
Zookeepr v3.4.6
solr-6.3.0
2、部署過程
2.1 部署好單機版Tomcat8.0 + jdk1.8 + Solr6.3.0
第一步:在F:\solr目錄下建立solrCloud目錄。
第二步:複製apache-tomcat-8.0到solrCloud目錄下,並重新命名為tomcat8_ser1
第三步:在F:\solr\solrCloud目錄下新建 solr_home_1 資料夾如下圖,並在目錄下,建立 home 和 server 資料夾
第四步:(solr6.3釋出版本本身就有一個可以執行的web版本)將solr-6.3.0\server\solr-webapp下的webapp檔案複製到F:\solr\solrCloud\ solr_home_1\service目錄下,並重新命名為solr_web。複製成功後如圖:
第五步:複製solr-6.3.0\server\solr下面的配置檔案全部拷貝到F:\solr\solrCloud\ solr_home_1\home目錄下。
第六步:將solr-6.3.0\server\lib\ext下面的jar包拷貝到solr_web/WEB-INF/lib下面。
第七步:複製solr-6.3.0/server/resources下的log4j.properties到solr_web/WEB-INF/classes下面,如果沒有classes目錄,就新建classes目錄。
第七步:修改web.xml檔案,關聯到solr配置檔案,這樣在tomcat容器啟動後,再啟動solr伺服器框架時,就會去讀取這些配置檔案,初始化solr框架。在web.xml中找到節點<env-entry>,預設是註釋的,去掉註釋。節點配置如下:節點名稱solr/home,對應的值為:F:\solr\solrCloud\solr_home_1\home,可自定義。修改後的web.xml如下:
Web.xml
第八步:修改tomcat的配置檔案server.xml,關聯web工程。
server.xml
第九步:輸入http://127.0.0.1:8080/solr/index.html來訪問看看。我的天,居然報錯了,貼出來看看:
報403錯誤,403一般都是沒有許可權。真是奇怪,為什麼會報這個錯誤呢,我也是折騰了好一會。最後發現在web.xml中有這麼一段配置:
有個節點<auth-constraint />,這個配置表示拒絕所有對這個資源的訪問。原來如此,把這段程式碼註釋掉:
重新執行看看。終於可以了。
二、配置多Tomcat8.0+solr6.3.0同時執行
第一步:
把tomcat8_ser1複製2份,分別命名tomcat8_ser2,tomcat8_ser3;
把solr_home_1複製2份,分別命名solr_home_2,solr_home_3。
目錄結構如下:
第二步:修改 F:\solr\solrClould\ \tomcat8_ser*\conf\server.xml配置。修改 tomcat8_ser* 分別對應 各自solr_home_*\server\solr_web服務 。如下圖:tomcat8_ser1對應solr_home_1\server\solr_web、2對應2 、3對應3 是吧
為了三個tomcat能夠在一臺機器上同時啟動,需要在server.xml修改tomcat的埠資訊。修改方案如下:
|
Tomcat Admin Port |
HTTP/1.1 Port |
AJP/1.3 Port |
tomcat7_ser1 |
8005 |
8080 |
8009 |
tomcat7_ser2 |
8015 |
8081 |
8019 |
tomcat7_ser3 |
8025 |
8082 |
8029 |
下圖是tomcat8_ser1每個埠位置:
Tomcat Admin Port:
HTTP/1.1 Port
AJP/1.3 Port
第三步:配置各個tomcat和solr 之間的關係,修改D:\Java\solrCloud5\solr_home_*\server\solr\WEB-INF目錄下的web.xml檔案(對應關係)
第四步:驗證修改是否成功,依次啟動三個Tomcat。並在瀏覽器輸入如下的URL:
http://localhost:8080/solr/index.html
http://localhost:8081/solr/index.html
http://localhost:8082/solr/index.html
如果都能正常訪問到solr的admin頁面,那麼說明配置是成功的。否則就需要檢查哪裡錯了或者遺漏了。
三、配置ZooKeeper叢集
這部分的內容與前面tomcat+solr是沒有關聯的,所以配置這裡,可以跟忘記前面的內容。
第一步:解壓zookeeper-3.4.6.tar.gz到F:\solr\solrCloud目錄,重新命名為zookeeper-1。
第二步:把F:\solr\solrCloud\ zookeeper-1\conf\目錄下的zoo_sample.cfg修改為zoo.cfg。並寫入如下的配置引數:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=F:/solr/solrCloud/zookeeper-1/data
dataLogDir= F:/solr/solrCloud/zookeeper-1/datalog
clientPort=2181
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
並且按照配置建立相應的data和datalog目錄。如果不不建立目錄是無法正常啟動的。
在data目錄中建立檔案myid(不需要字尾名),在myid檔案中寫入數字1並儲存退出。
第三步:把zookeeper-1複製2份,分別命名為zookeeper-2、zookeeper-3。然後修改各個zookeeper-*的conf目錄下zoo.cfg的dataDir和dataLogDir和clientPort。修改方案如下:
|
dataDir |
dataLogDir |
clientPort |
zookeeper-1 |
D:/Java/solrCloud5/ zookeeper-1/data |
D:/Java/solrCloud5/
zookeeper-1/datalog |
2181 |
zookeeper-2 |
D:/Java/solrCloud5/ zookeeper-2/data |
D:/Java/solrCloud5/
zookeeper-2/datalog |
2182 |
zookeeper-3 |
D:/Java/solrCloud5/ zookeeper-3/data |
D:/Java/solrCloud5/
zookeeper-3/datalog |
2183 |
並且修改每個data目錄下的myid檔案中的內容。zookeeper-1是1, zookeeper-2是2,zookeeper-3是3 。
第四步:啟動三個zookeeper。並驗證是否配置成功。目錄結構以及啟動目錄如下圖:
注意:連線第一臺時有異常資訊,不用管,等都連線起來就沒有異常了。
進入cmd 命令,輸入: netstat -ano|findstr 2181 檢視埠是否啟用
四、配置Tomcat+solr+zookeeper叢集
前面tomcat+solr能夠啟動和訪問了,而且zookeeper也能啟動成功了。接下來就需要把他們關聯起來。大家看那麼多貼子應該知道(當然不知道也要記住這個知識點):
solrcloud 的所有配置 需要zookeeper統一管理。
第一步: 將需要的配置庫 集中放到一個目錄中。
在F:\solr\solrCloud 下建立cloud_conf資料夾作為配置庫,將solr-6.3.0\server\ solr\configsets\sample_techproducts_configs\conf 下配置檔案複製到cloud_conf資料夾中。(也可以使用solr-6.3.0\example\example-DIH\solr\solr\conf中的配置檔案)。
第二步: 配置zookeeper路徑
在F:\solr\solrCloud\tomcat8_ser1\bin\catalina.bat檔案中, 我是在 setlocal 上一行新增:
如下圖:
set JAVA_OPTS=-Dbootstrap_confdir=F:/solr/solrCloud/cloud-config -Dcollection.configName=myconf -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -DnumShards=3
配置引數解釋:
-DzkHost是用來指定zookeeper伺服器的ip和埠。
-Dnumshareds=3 用來指定當前叢集中分片數為3
-Dcollection.configName 是在指定你的配置檔案上傳到zookeeper後的名字,省略這個引數將導致配置名字為預設的“configuration1”
-Dbootstrap_confdir :zooKeeper需要準備一份叢集配置的副本,所以這個引數是告訴SolrCloud這些 配置是放在哪裡。同時作為整個叢集共用的配置檔案。
可以看作是第一份solr配置。因為後續我們可以通過上傳,來實現多collection。
其餘tomcat8_ser* catalina.bat設定
set JAVA_OPTS= -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
第三步: 因為配置由zookeeper 統一管理了,所以home下面的solr配置就不起使用了。 刪除solr_home_*\home\solr資料夾, 修改配置solr.xml,如下圖
hostPort 修改為對應的tomcat埠號 8080 8081 8082。
第四步:重啟tomcat。訪問任意一個埠都成,比如:
http://localhost:8081/sor/index.html, 能正常訪問,且選單中,出現了Cloud說明我們已經部署成功了,
恭喜你小夥子 有前途。
本文為原創,如果您當前訪問的域名不是surenpi.com,請訪問“
素人派”。
檢視原文:
http://surenpi.com/2017/04/28/win7%e4%b8%8b%e5%8d%95%e6%9c%ba%e7%89%88%e7%9a%84%e4%bc%aa%e5%88%86%e5%b8%83%e5%bc%8fsolrcloud%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%batomcat8-solr-6-3-0zookeeper3-4-6/