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 >>>
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
## 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,
- Skonfiguruj jdk dla tego węzła
- Skopiuj cały katalog tomcat ze skonfigurowanego węzła
- Skopiuj cały katalog solr ze skonfigurowanego węzła
- Zmodyfikuj plik konfiguracyjny /opt/beh/core/solr/solr.xml na lokalny adres IP
- Usuń katalog danych w collection1
- 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
Przedrukowano pod adresem: https://my.oschina.net/xiaozhublog/blog/801287