solrcloud分布式集群部署&zookeeper集群安裝

jopen 11年前發布 | 32K 次閱讀 Solr 搜索引擎 SolrCloud

Solrcloud集群搭建

使用solrcloud有幾點需要注意的: 索引數據量比較大;配置是統一的(zookeeper會保持配置信息的一致性)

如果索引數據量不大,并且需求變動比較多,field要經常變動的可以考慮用multicore的模式。

規劃

虛擬機環境centos6.2 64位系統 三臺1G內存的虛機 網卡模式是NAT(測試環境推薦使用NAT)

192.168.139.121 master

192.168.139.122 slave1

192.168.139.123 slave2

修改 /etc/hosts 文件加入上面的域名

修改主機名 vi /etc/sysconfig/network

切記關閉防火墻(否則zookeeper啟動 zkServer.sh status查看狀態會找不到各自的角色)

首先要搭建的是zookeeper集群

Zookeeper集群的機器個數推薦是奇數臺,半數機器掛掉,服務是可以正常提供的

所有需要的軟件首先上傳到 /soft下

使用的zookeeper.3.4.5.tar.gz 穩定版

tar –zxvf zookeeper.3.4.5.tar.gz

cd zookeeper.3.4.5/conf

mv zoo_sample.cfg zoo.cfg //修改配置文件名

mkdir /soft/zookeeper-data //zookeeper的數據存儲位置

mkdir /soft/zookeeper-data/logs //zookeeper的日志文件位置

vi /zookeeper.3.4.5/conf/zoo.cfg

修改

dataDir=/soft/zookeeper-data

dataLogDir=/soft/zookeeper-data/logs

//添加zookeeper的集群配置

server.1=192.168.139.121:2888:3888

server.2=192.168.139.122:2888:3888

server.3=192.168.139.123:2888:3888

或者用域名

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

然后分別在每臺機器的/soft/zookeeper-data 下創建myid文件存儲該機器的標識碼 比如server.1 的標識碼就是 “1” myid文件的內容就一行 “1”

配置完一臺可以使用scp 把配置發到其他兩臺(使用scp前提是配置了無密鑰通信的機器之間,省的來回換機子麻煩)。

Scp –r /soft/zookeeper.3.4.5 master@slave1:/soft/zookeeper.3.4.5

Scp –r /soft/zookeeper.3.4.5 master@slave2:/soft/zookeeper.3.4.5

或者每臺手動做修改

配置完成啟動服務(啟動切記關閉所有的防火墻,不然啟動狀態會沒有角色說明)

Cd /soft/zookeeper.3.4.5/bin

./zkServer.sh start

//查看啟動狀態

./zkServer.sh status

solrcloud分布式集群部署&zookeeper集群安裝

solrcloud分布式集群部署&zookeeper集群安裝

查看啟動的監聽客戶端的端口是2181 默認

Mode:leader表示的是該zookeeper在集群中的角色

像上述這樣表名zookeeper的集群啟動成功。

Solrcloud分布式集群

解壓D:\apache-solr-4.3.0\example\webapps\solr.war

并將solr-4.3.1\example\lib\ext下面的jar 拷貝到解壓后的solr/WEB-INF/lib下

創建/usr/local/solrcloud目錄

在目錄/usr/local/solrcloud/config-files 放置solr的所有配置文件比如solrconfig.xml

該目錄下的所有配置文件是 D:\apache-solr-4.3.0\example\solr\collection1\conf 下的所有文件

schema.xml 等

在目錄/usr/local/solrcloud/solr-lib放置solr/WEB-INF/lib下的所有jar包

將整理好的solr項目拷貝到/soft/apache-tomcat-6.0.37/webapps下

創建solr的數據目錄/soft/solr-cores

并在該目錄下生成solr.xml solr的核配置文件

<?xml version="1.0" encoding="UTF-8" ?>

<solr persistent="true">

<logging enabled="true">

<watcher size="100" threshold="INFO" />

</logging>

<cores adminPath="/admin/cores" host="${host:}" hostPort="8080" hostContext="${hostContext:solr}" zkClientTimeout="${zkClientTimeout:15000}">

</cores>

</solr>

在/soft/apache-tomcat-6.0.37/conf/Catalina/localhost

創建solr.xml

Solr/home的配置文件

<?xml version="1.0" encoding="UTF-8"?>

<Context docBase="/soft/apache-tomcat-6.0.37/webapps/solr" debug="0" crossContext="true">

<Environment name="solr/home" type="java.lang.String" value="/soft/solr-cores" override="true"/>

</Context>

同時修改tomcat/bin/cataina.sh

JAVA_OPTS="-DzkHost=master:2188,slave1:2188,slave2:2188"

solrcloud分布式集群部署&zookeeper集群安裝

把修改好的tomcat 打包tomcat.zip 發送到slave1,slave2

Scp tomcat.zip root@slave1:/soft/

Scp tomcat.zip root@slave2:/soft/

./zkCli.sh -server master:2188 //連接zookeeper查看上面的文件存儲情況

solrcloud分布式集群部署&zookeeper集群安裝

上傳配置文件到zookeeper

java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost master:2188 -confdir /usr/local/solrcloud/config-files/ -confname myconf

連接zookeeper的配置內容

java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection -confname myconf -zkhost master:2188

cd apache-tomcat-6.0.37/bin

./startup.sh

訪問solr url:http://192.168.139.121:8080/solr

因為沒有穿件任何核和節點所以 會有如下的提示頁

solrcloud分布式集群部署&zookeeper集群安裝

//創建數據集collection 并指定 分片數,冗余節點數

curl 'http://192.168.139.121:8080/solr/admin/collections?action=CREATE&

name=mycollection&numShards=1&replicationFactor=1&maxShardsPerNode=1’

生成的節點信息 (單節點的)

solrcloud分布式集群部署&zookeeper集群安裝

多節點

三臺機器的情況:

java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost master:2188,slave1:2188,slave2:2188 -confdir /usr/local/solrcloud/config-files/ -confname myconf

連接zookeeper的配置信息

java -classpath .:/usr/local/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection -confname myconf -zkhost master:2188,slave1:2188,slave2:2188

創建collection 指定最多3個分片和冗余節點

curl 'http://192.168.139.121:8080/solr/admin/collections?action=CREATE&name=collection&numShards=3&replicationFactor=3&maxShardsPerNode=3'

執行完無報錯信息 說明成功了

solrcloud分布式集群部署&zookeeper集群安裝

建好的collection 還創建未分片

solrcloud分布式集群部署&zookeeper集群安裝

正常的創建效果應該是這樣的

/soft/solr-cores/下會多出索引的存儲目錄

solrcloud分布式集群部署&zookeeper集群安裝

創建分片和副本

//122,123上

//創建121的分片和副本

curl 'http://192.168.139.122:8080/solr/admin/cores?action=CREATE&name=collection_shard1_replica_2&collection=collection&shard=shard1'

curl 'http://192.168.139.123:8080/solr/admin/cores?action=CREATE&name=collection_shard1_replica_2&collection=collection&shard=shard1'

//121,123

//創建122的分片和副本

curl 'http://192.168.139.121:8080/solr/admin/cores?action=CREATE&name=collection_shard2_replica_2&collection=collection&shard=shard2'

curl 'http://192.168.139.123:8080/solr/admin/cores?action=CREATE&name=collection_shard2_replica_2&collection=collection&shard=shard2'

//122,121

//創建123的分片和副本

curl 'http://192.168.139.121:8080/solr/admin/cores?action=CREATE&name=collection_shard3_replica_3&collection=collection&shard=shard3'

curl 'http://192.168.139.122:8080/solr/admin/cores?action=CREATE&name=collection_shard3_replica_3&collection=collection&shard=shard3'

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!