Solr-4.10.3 uruchamia tryb klastra SolrCloud za pośrednictwem tomcat

Solr 4 10 3 Starts Solrcloud Cluster Mode Through Tomcat



Standard 2019 Unicorn Enterprise Heavy Recruitment dla inżynierów Pythona >>> hot3.png

1.1 Przygotowanie środowiska:

Środowisko systemowe: CentOS Linux wersja 7.2.1511 (rdzeń)

Środowisko oprogramowania: zostało zbudowane środowisko Hadoop, w tym Java i zookeeper



Wersja Java „1.7.0_79”



Zookeeper 3.4.5-cdh5.2.0

Apache-tomcat-7.0.47.tar.gz

Solr-4.10.3.tgz



## 1.2 Zainstaluj Solr ### 1.2.1 Zainstaluj tomcat

tar -zxvf apache-tomcat-7.0.47.tar.gz mv apache-tomcat-7.0.47 /opt/beh/core/tomcat chown -R hadoop:hadoop /opt/beh/core/tomcat/

### 1.2.2 Dodaj solr.war do tomcat

1. Skopiuj plik solr.war z przykładu solr do katalogu webapps tomcat

tar -zxvf solr-4.10.3.tgz chown -R hadoop:hadoop solr-4.10.3 cp solr-4.10.3/example/webapps/solr.war /opt/beh/core/tomcat/webapps/ mv solr-4.10.3 /opt/

2. Uruchom Tomcat i automatycznie rozpakuj plik solr.war

su – hadoop sh /opt/beh/core/tomcat/bin/startup.sh Using CATALINA_BASE: /opt/beh/core/tomcat Using CATALINA_HOME: /opt/beh/core/tomcat Using CATALINA_TMPDIR: /opt/beh/core/tomcat/temp Using JRE_HOME: /opt/beh/core/jdk Using CLASSPATH: /opt/beh/core/tomcat/bin/bootstrap.jar:/opt/beh/core/tomcat/bin/tomcat-juli.jar Tomcat started.

3. Usuń pakiet wojenny i zamknij tomcat

$ cd /opt/beh/core/tomcat/webapps/ $ rm -f solr.war $ jps 10596 Bootstrap $ kill 10596

### 1.2.3 Dodaj zależne pakiety jar dla usługi solr Istnieje 5 zależnych pakietów jar, skopiuj je do solr lib pod tomcat (oryginalne 45 pakietów)

$ cd /opt/solr-4.10.3/example/lib/ext/ $ ls jcl-over-slf4j-1.7.6.jar jul-to-slf4j-1.7.6.jar log4j-1.2.17.jar slf4j-api-1.7.6.jar slf4j-log4j12-1.7.6.jar $ cp * /opt/beh/core/tomcat/webapps/solr/WEB-INF/lib/

### 1.2.4 Dodaj log4j.properties

$ cd /opt/beh/core/tomcat/webapps/solr/WEB-INF/ $ mkdir classes $ cp /opt/solr-4.10.3/example/resources/log4j.properties classes/

### 1.2.5 Utwórz SolrCore Skopiuj jądro z przykładu solr do katalogu solr

$ mkdir -p /opt/beh/core/solr $ cp -r /opt/solr-4.10.3/example/solr/* /opt/beh/core/solr $ ls bin collection1 README.txt solr.xml zoo.cfg

Skopiuj plik jar rozszerzenia solr

$ cd /opt/beh/core/solr $ cp -r /opt/solr-4.10.3/contrib . $ cp -r /opt/solr-4.10.3/dist/ .

Skonfiguruj do korzystania z contrib i dist

$ cd collection1/conf/ $ vi solrconfig.xml

### 1.2.6 Załaduj SolrCore Zmodyfikuj plik konfiguracyjny solr web.xml w tomcat i określ ładowanie solrcore

$ cd /opt/beh/core/tomcat/webapps/solr/WEB-INF $ vi web.xml Modify /put/your/solr/home/here Is /opt/beh/core/solr

### 1.2.7 Uruchom tomcat

$ cd /opt/beh/core/tomcat $ ./bin/startup.sh

Wyświetl stronę internetową http://172.16.13.181:8080/solr wizerunek

## 1.3 Konfiguracja Solrcloud ### 1.3.1 Konfiguracja środowiska systemowego Trzy komputery

Adres IP hosta

Solr001 172.16.13.180 10.10.1.32

Solr002 172.16.13.181 10.10.1.33

Solr003 172.16.13.182 10.10.1.34

### 1.3.2 Konfiguracja zookeepera

$ cd $ZOOKEEPER_HOME $ vi zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/opt/beh/data/zookeeper # the port at which the clients will connect clientPort=2181 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir autopurge.snapRetainCount=3 # Purge task interval in hours # Set to '0' to disable auto purge feature autopurge.purgeInterval=1 maxClientCnxns=0 server.1=solr001:2888:3888 server.2=solr002:2888:3888 server.3=solr003:2888:3888

Ustaw myid, trzy maszyny należy zmienić odpowiednio na numery 1, 2 i 3. Uruchom odpowiednio zookeeper

$ zkServer.sh start

Wyświetl status dozorcy

$ zkServer.sh status JMX enabled by default Using config: /opt/beh/core/zookeeper/bin/../conf/zoo.cfg Mode: follower

1.3.3 Skonfiguruj tomcat

Skopiuj skonfigurowany tomcat w wersji autonomicznej do każdego komputera osobno

$ scp -r tomcat solr002:/opt/beh/core/ $ scp -r tomcat solr003:/opt/beh/core/

1.3.4 Skopiuj SolrCore

$ scp -r solr solr002:/opt/beh/core/ $ scp -r solr solr003:/opt/beh/core/

Użyj zookeepera do jednolitego zarządzania plikami konfiguracyjnymi

$ cd /opt/solr-4.10.3/example/scripts/cloud-scripts $ ./zkcli.sh -zkhost 10.10.1.32:2181,10.10.1.33:2181,10.10.1.34:2181 -cmd upconfig -confdir /opt/beh/core/solr/collection1/conf -confname solrcloud

Zaloguj się do zookeepera, a zobaczysz nowo utworzony folder solrcloud

$ zkCli.sh [zk: localhost:2181(CONNECTED) 1] ls / [configs, zookeeper] [zk: localhost:2181(CONNECTED) 2] ls /configs [solrcloud]

Zmodyfikuj plik konfiguracyjny tomcat na każdym węźle, dodaj DzkHost, aby określić adres serwera zookeeper

$ cd /opt/beh/core/tomcat/bin $ vi catalina.sh JAVA_OPTS='-DzkHost=10.10.1.32:2181,10.10.1.33:2181,10.10.1.34:2181' At the same time, also modify the boot jvm memory here JAVA_OPTS='-server -Xmx4096m -Xms2048m -DzkHost=10.10.1.32:2181,10.10.1.33:2181,10.10.1.34:2181'

Zmodyfikuj konfigurację internetową solrcloud, każda maszyna zostanie zmodyfikowana do własnego adresu IP

$ cd /opt/beh/core/solr $ vi solr.xml ${host:10.10.1.32} ${jetty.port:8080}

### 1.3.5 Uruchom tomcat

Każda maszyna musi zostać uruchomiona

$ cd /opt/beh/core/tomcat $ ./bin/startup.sh

Zaloguj się do portu internetowego, aby wyświetlić

http://172.16.13.181:8080/solr

Każdy to zrobi

### 1.3.6 Dodaj węzeł Solrcloud jest wygodniejszy do dodania węzła,

  1. Skonfiguruj jdk dla tego węzła
  2. Skopiuj cały katalog tomcat ze skonfigurowanego węzła
  3. Skopiuj cały katalog solr ze skonfigurowanego węzła
  4. Zmodyfikuj plik konfiguracyjny /opt/beh/core/solr/solr.xml na lokalny adres IP
  5. Usuń katalog danych w collection1
  6. Uruchom tomcat
Check the tomcat log to see if it started successfully $ tail –f /opt/beh/core/tomcat/logs/catalina.out November 30, 2016 4:46:03 pm org.apache.coyote.AbstractProtocol init Information: Initializing ProtocolHandler ['ajp-bio-8009'] November 30, 2016 4:46:03 pm org.apache.catalina.startup.Catalina load Information: Initialization processed in 868 ms November 30, 2016 4:46:03 pm org.apache.catalina.core.StandardService startInternal Information: Starting service Catalina November 30, 2016 4:46:03 pm org.apache.catalina.core.StandardEngine startInternal Information: Starting Servlet Engine: Apache Tomcat/7.0.47 November 30, 2016 4:46:03 pm org.apache.catalina.startup.HostConfig deployDirectory Information: Deploying web application directory /opt/beh/core/tomcat/webapps/ROOT May be stuck here for a few minutes 。。。 Information: Server startup in 332872 ms 6133 [coreZkRegister-1-thread-1] INFO org.apache.solr.cloud.ZkController – We are http://10.10.1.36:8080/solr/collection1/ and leader is http://10.10.1.33:8080/solr/collection1/ 6134 [coreZkRegister-1-thread-1] INFO org.apache.solr.cloud.ZkController – No LogReplay needed for core=collection1 baseURL=http://10.10.1.36:8080/solr 6134 [coreZkRegister-1-thread-1] INFO org.apache.solr.cloud.ZkController – Core needs to recover:collection1 6134 [coreZkRegister-1-thread-1] INFO org.apache.solr.update.DefaultSolrCoreState – Running recovery - first canceling any ongoing recovery 6139 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Starting recovery process. core=collection1 recoveringAfterStartup=true 6140 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – ###### startupVersions=[] 6140 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Publishing state of core collection1 as recovering, leader is http://10.10.1.33:8080/solr/collection1/ and I am http://10.10.1.36:8080/solr/collection1/ 6141 [RecoveryThread] INFO org.apache.solr.cloud.ZkController – publishing core=collection1 state=recovering collection=collection1 6141 [RecoveryThread] INFO org.apache.solr.cloud.ZkController – numShards not found on descriptor - reading it from system property 6165 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Sending prep recovery command to http://10.10.1.33:8080/solr WaitForState: action=PREPRECOVERY&core=collection1&nodeName=10.10.1.36%3A8080_solr&coreNodeName=core_node4&state=recovering&checkLive=true&onlyIfLeader=true&onlyIfLeaderActive=true 6180 [zkCallback-2-thread-1] INFO org.apache.solr.common.cloud.ZkStateReader – A cluster state change: WatchedEvent state:SyncConnected type:NodeDataChanged path:/clusterstate.json, has occurred - updating... (live nodes size: 4) 8299 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Attempting to PeerSync from http://10.10.1.33:8080/solr/collection1/ core=collection1 - recoveringAfterStartup=true 8303 [RecoveryThread] INFO org.apache.solr.update.PeerSync – PeerSync: core=collection1 url=http://10.10.1.36:8080/solr START replicas=[http://10.10.1.33:8080/solr/collection1/] nUpdates=100 8306 [RecoveryThread] WARN org.apache.solr.update.PeerSync – no frame of reference to tell if we've missed updates 8306 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – PeerSync Recovery was not successful - trying replication. core=collection1 8306 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Starting Replication Recovery. core=collection1 8306 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Begin buffering updates. core=collection1 8307 [RecoveryThread] INFO org.apache.solr.update.UpdateLog – Starting to buffer updates. FSUpdateLog{state=ACTIVE, tlog=null} 8307 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Attempting to replicate from http://10.10.1.33:8080/solr/collection1/. core=collection1 8325 [RecoveryThread] INFO org.apache.solr.handler.SnapPuller – No value set for 'pollInterval'. Timer Task not started. 8332 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – No replay needed. core=collection1 8332 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Replication Recovery was successful - registering as Active. core=collection1 8332 [RecoveryThread] INFO org.apache.solr.cloud.ZkController – publishing core=collection1 state=active collection=collection1 8333 [RecoveryThread] INFO org.apache.solr.cloud.ZkController – numShards not found on descriptor - reading it from system property 8348 [RecoveryThread] INFO org.apache.solr.cloud.RecoveryStrategy – Finished recovery process. core=collection1 8379 [zkCallback-2-thread-1] INFO org.apache.solr.common.cloud.ZkStateReader – A cluster state change: WatchedEvent state:SyncConnected type:NodeDataChanged path:/clusterstate.json, has occurred - updating... (live nodes size: 4)

Wyświetl stronę internetową i pomyślnie dodaj czwarty węzeł

Możesz zobaczyć, że collection1 ma shard shard1, a shard1 ma cztery kopie, z których czarna kropka ip to 33 to kopia główna

# 2 Zarządzanie klastrem ## 2.1 Tworzenie kolekcji Utwórz kolekcję z 2 fragmentami, a każdy fragment ma 2 kopie

$ curl 'http://172.16.13.180:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2&wt=json&indent=true'

Ponadto możesz również otworzyć link w '' bezpośrednio na stronie internetowej, wynik obu metod jest taki sam:

# 2.2 Usuń kolekcję

$ curl 'http://172.16.13.180:8080/solr/admin/collections?action=DELETE&name=collection2&wt=json&indent=true'

## 2.3 Skonfiguruj chiński tokenizer IK ### 2.3.1 Samodzielna konfiguracja

1. Pobierz pakiet i

http://code.google.com/p/ik-analyzer/downloads/list

Pobierz IK Analyzer 2012FF_hf1.zip

2. Rozpakuj i prześlij na serwer

3. Skopiuj opakowanie słoika

cp IKAnalyzer2012FF_u1.jar /opt/solr/apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib/

4. Skopiuj pliki konfiguracyjne i słownik zatrzymania łamacza wyrazów

cp IKAnalyzer.cfg.xml /opt/solr/solrhome/contrib/analysis-extras/lib/ cp stopword.dic /opt/solr/solrhome/contrib/analysis-extras/lib/

5. Zdefiniuj fieldType, użyj chińskiego tokenizera

cd /opt/solr/solrhome/solr/collection1/conf vi schema.xml

6. Zrestartuj tomcat

cd /opt/solr/apache-tomcat-7.0.47/ ./bin/shutdown.sh ./bin/startup.sh

7. Strona internetowa do testowania

Możesz znaleźć title_ik lub content_ik w polach i text-ik w obszarze Types w Analyze Fieldname / FieldType, kliknij Analyze Values ​​do analizy

### 2.3.2 Konfiguracja wersji klastra 1. Skopiuj pakiet jar i plik konfiguracyjny oraz słownik słów zatrzymujących dzielnik słów do odpowiedniej lokalizacji każdego węzła

cp IKAnalyzer2012FF_u1.jar /opt/beh/core/tomcat/webapps/solr/WEB-INF/lib/ cp IKAnalyzer.cfg.xml stopword.dic /opt/beh/core/solr/contrib/analysis-extras/lib/

2. Zmodyfikuj plik konfiguracyjny schema.xml, aby zdefiniować fieldType, użyj łamacza słów chińskich

Zapoznaj się z konfiguracją autonomiczną

3. Prześlij plik konfiguracyjny do zookeeper

cd /opt/solr-4.10.3/example/scripts/cloud-scripts ./zkcli.sh -zkhost 10.10.1.32:2181,10.10.1.33:2181,10.10.1.34:2181 -cmd upconfig -confdir /opt/beh/core/solr/collection1/conf -confname solrcloud

4. Uruchom ponownie Tomcat na wszystkich węzłach

5. Otwórz stronę internetową dowolnego węzła, aby zobaczyć pomyślną konfigurację tokenu IK

# 3 Zintegrowany HDFS ## 3.1 Modyfikacja konfiguracji Solr integruje hdfs, głównie w celu przechowywania indeksu na hdfs, dostosuj plik konfiguracyjny solrconfig.xml

cd /opt/beh/core/solr/collection1/conf vi solrconfig.xml 1. Modify the default configuration of the section to the following configuration: hdfs://beh/solr true 1 true 16384 true true true 16 192 /opt/beh/core/hadoop/etc/hadoop 2. Modify solr.lock.type Change ${solr.lock.type:native} to ${solr.lock.type:hdfs}

## 3.3 Prześlij plik konfiguracyjny do zookeepera

cd /opt/solr-4.10.3/example/scripts/cloud-scripts ./zkcli.sh -zkhost 10.10.1.32:2181,10.10.1.33:2181,10.10.1.34:2181 -cmd upconfig -confdir /opt/beh/core/solr/collection1/conf -confname solrcloud

## 3.4 Zrestartuj tomcat

cd /opt/solr/apache-tomcat-7.0.47/ ./bin/shutdown.sh ./bin/startup.sh

3.5 Sprawdź

Zobacz katalog hdfs

$ hadoop fs -ls /solr Found 2 items drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1 $ hadoop fs -ls /solr/collection1 Found 4 items drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1/core_node1 drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1/core_node2 drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1/core_node3 drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1/core_node4 $ hadoop fs -ls /solr/collection1/core_node1 Found 1 items drwxr-xr-x - hadoop hadoop 0 2016-12-06 15:31 /solr/collection1/core_node1/data

Wyświetl stronę, możesz zobaczyć, że ścieżka danych collection1 została przypisana do odpowiedniego katalogu hdfs

wizerunek

Przedrukowano pod adresem: https://my.oschina.net/xiaozhublog/blog/801287