SOLRCLOUD安裝

多節點徹底分佈式SolrCloudjson

Node Name         IP     HostName   瀏覽器

Node1          192.168.182.128     vm11   curl

Node2      192.168.182.129     vm22分佈式

Node3      192.168.182.130     vm33oop

三個節點安裝ZooKeeper,三個節點安裝Solr,IP/HOST同上。優化

2.1 運行ZooKeeper(不使用Solr內嵌的)url

    下載、解壓ZooKeeper,我用的是zookeeper-3.4.6.tar.gz,安裝目錄是/home/hadoop/tools/zookeeper-3.4.6rest

    cd /home/hadoop/tools/zookeeper-3.4.6server

    mkdir dataxml

    echo "1" >data/myid       (這個在後面的配置文件用到)

    cd conf

    vi zoo.cfg   (裏面的內容是這樣的)

dataDir=/home/hadoop/tools/zookeeper-3.4.6/data

clientPort=2181

initLimit=5

syncLimit=2

server.1=vm11:2888:3888

server.2=vm22:2888:3888

server.3=vm33:2888:3888

    dataDir 把內存中的數據存儲成快照文件snapshot的目錄,同時myid也存儲在這個目錄下(myid中的內容爲本機server服務的標識)是ZK存放數據的目錄,最好放在其餘的目錄,不要在安裝目錄下。

  clientPort 客戶端鏈接server的端口,即zk對外服務端口,通常設置爲2181。

  initLimit  Leader容許Follower在initLimit時間內完成這個工做。默認值爲10,即10 * tickTime

  syncLimit  Leader發出心跳包在syncLimit以後,尚未從Follower那裏收到響應,那麼就認爲這個Follower已經不在線了。默認爲5,即5 * tickTime

  tickTime    ZK中的一個時間單元。ZK中全部時間都是以這個時間單元爲基礎,進行整數倍配置的。

  server.X   hostname爲機器ip,第一個端口n爲事務發送的通訊端口,第二個n爲leader選舉的通訊端口,默認爲2888:3888

  配置好了以後,就能夠啓動ZK了。

 ./bin/zkServer.sh start

 在其餘的節點上重複作這個,惟一須要注意的是myid這個文件,在其餘的節點上修改成2,3,再啓動。

 這樣ZK就創建起來了。

[hadoop@vm22 bin]$ ./zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/tools/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: leader

2.2 安裝運行Solr

下載解壓Solr,我用的是solr-5.3.0 solr5的一大feature就是能做爲獨立的App運行,不須要和其餘的

Node Name         IP     HostName   

Node1          192.168.182.128     vm11   

Node2      192.168.182.129     vm22

Node3      192.168.182.130     vm33

三個節點安裝ZooKeeper,三個節點安裝Solr,IP/HOST同上。

2.1 運行ZooKeeper(不使用Solr內嵌的)

    下載、解壓ZooKeeper,我用的是zookeeper-3.4.6.tar.gz,安裝目錄是/home/hadoop/tools/zookeeper-3.4.6

    cd /home/hadoop/tools/zookeeper-3.4.6

    mkdir data

    echo "1" >data/myid       (這個在後面的配置文件用到)

    cd conf

    vi zoo.cfg   (裏面的內容是這樣的)

dataDir=/home/hadoop/tools/zookeeper-3.4.6/data

clientPort=2181

initLimit=5

syncLimit=2

server.1=vm11:2888:3888

server.2=vm22:2888:3888

server.3=vm33:2888:3888

    dataDir 把內存中的數據存儲成快照文件snapshot的目錄,同時myid也存儲在這個目錄下(myid中的內容爲本機server服務的標識)是ZK存放數據的目錄,最好放在其餘的目錄,不要在安裝目錄下。

  clientPort 客戶端鏈接server的端口,即zk對外服務端口,通常設置爲2181。

  initLimit  Leader容許Follower在initLimit時間內完成這個工做。默認值爲10,即10 * tickTime

  syncLimit  Leader發出心跳包在syncLimit以後,尚未從Follower那裏收到響應,那麼就認爲這個Follower已經不在線了。默認爲5,即5 * tickTime

  tickTime    ZK中的一個時間單元。ZK中全部時間都是以這個時間單元爲基礎,進行整數倍配置的。

  server.X   hostname爲機器ip,第一個端口n爲事務發送的通訊端口,第二個n爲leader選舉的通訊端口,默認爲2888:3888

  配置好了以後,就能夠啓動ZK了。

 ./bin/zkServer.sh start

 在其餘的節點上重複作這個,惟一須要注意的是myid這個文件,在其餘的節點上修改成2,3,再啓動。

 這樣ZK就創建起來了。

[hadoop@vm22 bin]$ ./zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/tools/zookeeper-3.4.6/bin/../conf/zoo.cfg

Mode: leader

 

 

容器綁定,優化安裝配置 我解壓到 /home/hadoop/tools/solr-5.3.0。激動人心的時刻就要到來了。

咱們知道ZooKeeper 就是爲了解決統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理等而來的。

1) 首先要上傳配置文件,放在Zk裏面,讓Solr從ZK裏面來得到配置,管理集羣,這個的確是一件美好的事情

在Solr的目錄下面有個server/scripts/cloud-scripts目錄,裏面提供了一個腳原本作這個事情(固然在ZK裏面也有腳原本作這個,Solr裏面的這個是作了一個封裝)

./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -confdir ./server/solr/configsets/basic_configs/conf -confname myconf -z vm11:2181,vm22:2181,vm33:2181

這幾個參數的意義仍是比較容易看出來的。

創建Link between collection and conf

./server/scripts/cloud-scripts/zkcli.sh -cmd linkconfig -collection mycol -confname myconf -z vm11:2181,vm22:2181,vm33:2181

能夠經過ZK的命令查看是否成功:cd /home/hadoop/tools/zookeeper-3.4.6/bin

./zkCli.sh -server vm22:2181

[zk: vm22:2181(CONNECTED) 2] ls /configs/myconf

[_rest_managed.json, currency.xml, solrconfig.xml, protwords.txt, stopwords.txt, synonyms.txt, lang, schema.xml]

[zk: vm22:2181(CONNECTED) 3] ls /collections/mycol

[state.json, leader_elect, leaders]

 

2) 下面就能夠把每一個啓動solr節點都啓動了。

./bin/solr start -cloud -p 8983 -s "/home/hadoop/tools/solr-5.3.0/server/solr" -z vm11:2181,vm22:2181,vm33:2181

-cloud指定運行爲cloud模式  -p 端口

-s 就是要指定solr.xml所在的目錄,就是不少時候說的solr.solr.home(solr的官方文檔也是這樣)這個名字真的是很奇葩,開始的時候很難理解,這麼說吧,solr.home就是通常說的solr的安裝目錄,就像萬能的Java_home,hadoop_home.而solr.solr.home能夠理解爲每一個solr運行時的配置目錄,包括core,等等。固然也能夠copy裏面的幾個文件,把-s指向其餘的目錄

-z ZK配置,多個的時候中間用,隔開

三個節點都運行這個命令,運行起來後,這樣cloud就跑起來了。

 

3) 下面來建立Shard,經過curl來執行

curl ’http://vm11:8983/solr/admin/collections?action=CREATE&name=mycol&numShards=3&replicationFactor=3&maxShardsPerNode=3&collection.configName=myconf‘

這個myconf從上面上傳到zk裏面的配置,咱們在前面早就配置好了。其餘的幾個參數很明顯。

在一個節點上運行就能夠了。開始打開瀏覽器:http://192.168.182.128:8983

 

 

幾個地方我高亮出來了,很容易看出來。再來看看solr.solr.home。例如Node1,這個裏面包括三個shard,每一個的一個replica

相關文章
相關標籤/搜索