More than Just Lines on a Map: Best Practices for U.S Bike Routes
SOLR hosting & large scale
1. I M P A C TI M P A C T
SOLR HOSTING &
LARGE SCALE
V E D T I N O D A I N E S E – T I D @ I M P A C T . D K
2. I M P A C T
AGE NDA
• Simpel hosting af SOLR (Nssm)
• SolrCloud
– Hvad er det? Start, virkemåde
• Zookeeper
– Opsætning
• Hvorfor 3 servere
– Se og Imerco
• Et optimalt Setup (NLB).
• Backup
3. I M P A C T
TE RMINOLOGI
• Core, basis enheden i et Solr index.
• Collection, samling af dokumenter – en Collection er hosted i en core.
• Configration, sæt af konfigrations filer,(schema.xml, solrconfig.xml etc)
• Leader, hver shard har en slice som er identificeret som leder.
• Node, fysisk server instans i solr cloud
• Replica, en kopi af en slice, og shard
• Shard, En eller flere slices – (leader og replika).
• Slice, en del af en shard – en leder eller replica.
• SolrCloud, Samlig af solr noder
4. I M P A C T
INSTALLATION
• Installer Java JRE 1.7
• Download Solr zip
– http://mirrors.rackhosting.com/apache/lucene/so
lr/5.2.1/
• Udpak i c:solr eller lign.
5. I M P A C T
HOSTRING AF SOLR
• Vi burger NSSM
• ´the Non-Sucking Service Manager´
• AppDirectory = C:solr
• Application = Java
• -Dsolr.solr.home=d:/Data/Solr/MultiCore
• -Dsolr.solr.log=e:/Solr
• -Djetty.home=c:/Solr/
• -Djetty.logs=e:/Solr
• -DzkHost=SLR3, SLR4, SLR5 -jar start.jar
6. I M P A C T
SOLRCLOUD
• Ingen master/slave, men leaders og replicas
• Fleksibelt distribueret søgning og index
• Fejl tolerant og highly available
• Automatisk loadblance og failover for queryes
• Zookeep integration for cluster kooridnering og
konfiguration. (placeringer etc.)
7. I M P A C T
START AF SOLRCLOUD
• Vurder antal shards er der brug for
• Vurder antal maskine der er brug for
• Start ZooKeeper
• Start Solr på alle serverne
• Send dokumenter til en vilkårlig maskine
• Send forespørgsler til en vilkårlig maskine
8. I M P A C T
SOLRCLOUD
Solr Master 1
ZK node
Solr Replica 1
Zk node
Solr Master 2
ZK node
Solr Replica 1
Zk node
- Tilføj node, pej på ZK
- Node tager rolle Shard 2
- Automatisk dokument distribution
- Automatish query i clusteret
- Central konfig og monitorering
- Tilføj replica noder
- Automatisk rolle fra ZK
- Leder election af ZK
9. I M P A C T
SOLRCLOUD
Solr Master 1
ZK node
Solr Replica 1
Zk node
Solr Master 2
ZK node
Solr Replica 1
Zk node
Solr Master 2
ZK node
10. I M P A C T
SOLRCLOUD
Solr Master 1
ZK node
Solr Replica 1
Zk node
Solr Master 2
ZK node
Solr Replica 1
Zk node
-DzkRun
-Dcollection.configName=jz
-DnumShards=2
-Dbootstrap_confdir=./solr/coll/conf
-DzkHost=ZookeeperHost1
-DzkHost=ZookeeperHost1
-DzkHost=ZookeeperHost1
-DzkHost=ZookeeperHost1
11. I M P A C T
SOLRCLOUD
Solr shard 1
ZK node
Load
Balancer
Load
Balancer
Solr shard 2
ZK node
Solr shard 3
ZK node
Client søger
efter data
12. I M P A C T
SOLRCLOUD & ZOOKE E PE R
• Optimalt setup
• Fuld redundant
• Tag en maskine ud og ind – uden konfiguration
• Alle maskiner er aktive
• Zookeeper er 1,3,5 etc.
• En giver ingen redundans, 5 er for meget
• Ingen NLB opsætning på eksterne servere
• Stadigt billigt i licenser
Solr Leader
ZK node
Solr replica
ZK node
Solr replica
ZK node
Windows NLB
http server for
Solr
13. I M P A C T
OPSÆTNING ZOOKE E PE R
• Download zookeeper
• Udpak i f.eks. C:zookeeper-3.4.6
• Nssm opsat til at starte C: zookeeper-3.4.6 binzkServer.cmd
• C:zookeeperdatamyid skal indeholde den unikke id
• Zoo.cfg skal ligge i "C:zookeeper-3.4.6conf" og indeholde:
• Cores kan tilføjes til zookeeper, ved at kalde zkCli:
– zkcli -zkhost localhost:2181 -cmd upconfig -confdir N:SolrMultiCore/CmsContentCore/conf -
confname CmsContentCore
15. I M P A C T
BACKUP FILE
• Hvorfor tage backup overhoved???
– F.eks. Hvis index er ødelagt
– Design arkitektur så alt data kan genskabes nemt
• Backup
– Data directory som har index filerne
– Konfig fler som schema.xml. Solrconfig.xml etc.
• Restore
– Luk SOLR ned, og kopier filerne tilbage, starte SOLR.
16. I M P A C T
BACKUP API
• Lav backup sådan:
– http://localhost:8983/solr/<core>/replication?command=backup
• Check backup sådan:
– http://localhost:8983/solr/ /<core>/replication?command=details