Git Product home page Git Product logo

solrcloud-zookeeper-docker's Introduction

solrcloud-zookeeper-docker

This project aims to help developers and newbies that would try latest version of SolrCloud (and Zookeeper) in a Docker environment.

This version of this project is entirely based on the newer Solr and Zookeeper official images.

Prerequisite

Quick start

If you want try a lightweight configuration with 1 SolrCloud container and 1 Zookeeper container, just run:

git clone https://github.com/freedev/solrcloud-zookeeper-docker.git
cd solrcloud-zookeeper-docker
./start.sh

The script will output the list of container started, their ip addresses and ports. For example executing start.sh will output:

[...]
ZOO_SERVERS: localhost:2181
Ensemble ready.

Starting container: solr-1_1 (localhost) on port: 8081 ...

SolrCloud cluster running!

Start your SolrCloud cluster

Start a 3 container SolrCloud and a 3 container Zookeeper ensemble running:

./start-cluster.sh

The script will output the list of container started, their ip addresses and ports. For example executing start-cluster.sh will output:

[...]
Starting zoo-2 ... done
Starting zoo-3 ... done
Starting zoo-1 ... done
Starting solr-1 ... done
Starting solr-3 ... done
Starting solr-2 ... done

ZOO_SERVERS: localhost:2181,localhost:2182,localhost:2183
Ensemble ready.

Starting container: solr-1_1 (localhost) on port: 8081 ...
Starting container: solr-2_1 (localhost) on port: 8082 ...
Starting container: solr-3_1 (localhost) on port: 8083 ...

SolrCloud cluster running!

try connecting to http://localhost:8081/solr

How to move your standalone Solr to SolrCloud

  1. (Optional step) Copy your lib/*.jar files into solrcloud-zookeeper-docker/solrcloud/data/solr-1/store/shared-lib.

  2. Upload the collection configuration into Zookeeper. To upload the configuration just use zkcli-util.sh. You'll find zkcli-util.sh into solrcloud-zookeeper-docker.

    ./zkcli-util.sh --cmd upconfig -confname collection1 -confdir /path/to/collection1/conf/ -zkhost 127.0.0.1:2181

  3. Go into the Solr Admin and have a look at http://localhost:8081/solr/#/~cloud?view=tree
    And double check zookeeper /config/ folder, there you should see your configuration.

  4. Create your collection (for example using Collections API - CREATE).

  5. Now can load your documents into the fresh collection. Theoretically, at this point, if your standalone version of Solr is the same of SolrCloud, given you're using the same version of Lucene indexes you could try to brutally copy the index data. But first you have to shutdown SolrCloud.

Note about Zookeeper configuration

Given that: "Every machine that is part of the ZooKeeper ensemble should know about every other machine in the ensemble".

So when a cluster starts, in detail, this script will:

  • enter the directory solrcloud-3-nodes-zookeeper-ensemble
  • generate the zookeeper configuration as environment variable
  • execute docker-compose
  • Create 3 Zookeeper containers and 3 Solr containers
  • Start Zookeeper ensemble with the given configuration.
  • Create and start 3 SolrCloud containers linked to Zookeeper ensemble

If you want connect your clients to SolrCloud or want read by Zookeeper ensemble and SolrCloud can be exposed externally through ZKHOST env variable

Boot

In order to help who want restart all the container automatically with Linux at every boot, an init.d start/stop script has been provided.

You should link the script into /etc/inid.d:

  export SZD_HOME=/home/ubuntu/solrcloud-zookeeper-docker
sudo ln -s $SZD_HOME/sbin/solrcloud-zookeeper-docker /etc/init.d/solrcloud-zookeeper-docker

Edit solrcloud-zookeeper-docker script and modify:

ZK_CLUSTER_SIZE=1
SOLRCLOUD_CLUSTER_SIZE=1

Under Ubuntu you can configure boot start and stop in this way:

sudo update-rc.d solrcloud-zookeeper-docker defaults

Note: The first version of this project was written when there wasn't docker-compose and there weren't official images for Solr, Zookeeper and even Java 8. Hence the project had its own custom images for every piece of the architecture and I had to create the docker network in order to start a zookeeper ensemble.

Finally the official images are ready for almost everything, so I had re-build the entire project from the ground up using docker-compose and official images.

solrcloud-zookeeper-docker's People

Contributors

freedev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.