ZooKeeper создает solr-кластер

задняя часть ZooKeeper Tomcat Solr

Что такое ZooKeeper?

ZooKeeper — это распределенная служба координации распределенных приложений с открытым исходным кодом. Это реализация Google Chubby с открытым исходным кодом. Она является менеджером кластера и отслеживает состояние каждого узла в кластере. Следующий шаг разумен в соответствии с отправленными отзывами. узлами.

Функции ZooKeeper

  • Управление кластером Управление «главный-ведомый», балансировка нагрузки и управление высокой доступностью. Вход в кластер. Zookeeper должен быть кластером для обеспечения высокой доступности. Zookeeper имеет механизм выборов и голосования. В кластере должно быть не менее трех узлов.

  • Централизованное управление конфигурационными файлами При создании кластера solr вам необходимо загрузить файл конфигурации Solr в zookeeper, чтобы zookeeper мог управлять им единообразно. Каждый узел получает файл конфигурации из zookeeper.

Конфигурация кластера

  • 3 смотрителя зоопарка
  • солр 4 единицы

Кластерная конструкция

Создайте кластер зоопарка

  • скачатьZooKeeper

  • Загрузите ZooKeeper на сервер (инструмент sftp или lrzsz)

  • Распаковать ZooKeeper

  • Скопируйте zookeeper в /usr/local/solr-cloud три копии с именами zookeeper01, zookeeper02, zookeeper03 соответственно.

  • Настройте зоопарк.

    • Создайте папку данных в каталоге zookeeper01.

    • Создайте файл myid в каталоге данных

    • Содержимое myid равно 1. (02 соответствует «2», 03 соответствует «3»).

    • zookeeper02, 03 и так далее.

    • Войдите в conf и переименуйте zoo_sample.cfg в zoo.cfg.

    • Изменить zoo.cfg

      • Укажите datadir = как папка, которую вы только что создали.
      • clientPort указывается как неконфликтующий номер порта (01:2181,02:2182,03:2183)
      • Добавьте следующее:
        server.1=192.168.126.128: 2881:3881
        server.2=192.168.126.128: 2882:3882
        server.3=192.168.126.128: 2883:3883
        

  • начать смотритель зоопарка Используйте zkServer.sh в каталоге bin каталога zookeeper, чтобы запустить соответственно три зоопарка. Старт: ./zkServer.sh старт Остановить: ./zkServer.sh остановить Посмотреть статус ./zkServer.sh статус

Создайте solr-кластер

  • Установите 4 tomcats, отредактируйте server.xml и измените порты 8081-8084.

  • Разверните solr на tomcat. (Подробности см. в предыдущем блоге)

  • Создайте solrhome для каждого экземпляра solr.

  • Отредактируйте web.xml, чтобы связать каждый экземпляр solr с соответствующим solrhome.

  <env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>/usr/local/solr-cloud/solrhome1</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
   </env-entry>
  • Отредактируйте solr.xml для каждого solrhome и укажите соответствующий хост и порт.
  <solrcloud>
    <str name="host">${host:192.168.126.128}</str>
    <int name="hostPort">${jetty.port:8081}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>
  • Загрузите файл конфигурации в zookeeper. Файл конфигурации необходимо загрузить с помощью команды /root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh. (Другие файлы конфигурации solrhome также будут работать.)
./zkcli.sh -zkhost 192.168.126.128:2181,192.168.126.128:2182,192.168.126.128:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome1/collection1/conf -confname myconf
  • Проверьте, прошла ли загрузка успешно Используйте команду zkCli.sh в каталоге bin zookeeper.
./zkCli.sh #即可连接上 zookeeper 集群

Затем вы можете просмотреть файлы в кластере

  • Сообщите экземпляру solr местонахождение zookeeper. Нужно отредактировать tomcat catalina.sh, добавить:
JAVA_OPTS="-DzkHost=192.168.126.128:2181,192.168.126.128:2182,192.168.126.128:2183"

Каждый узел должен быть добавлен.

  • Запускайте каждый экземпляр solr отдельно

  • Разделение кластера Разделите кластер на два сегмента, каждый с двумя репликами. Доступ в адресной строке браузера:

http://192.168.126.128:8081/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

Если получен следующий результат, шардинг прошел успешно.

Обновите страницу облака solr.

  • Удалить неиспользуемую коллекцию1.
http://192.168.126.128:8081/solr/admin/collections?action=DELETE&name=collection1

Подключение к кластеру с помощью Solrj

@Test
	public void testSolrClout() throws Exception {
		//创建一个SolrServer对象
		CloudSolrServer solrServer = new CloudSolrServer("192.168.126.128:2181,192.168.126.128:2182,192.168.126.128:2183");
		//设置默认的collection
		solrServer.setDefaultCollection("collection2");
		//创建一个文档对象
		SolrInputDocument document = new SolrInputDocument();
		document.addField("id", "test01");
		document.addField("item_title", "title1");
		//添加文档
		solrServer.add(document);
		//提交
		solrServer.commit();
	}

Переход на кластеризацию весной

<bean id ="cloudSolrServer" class="org.apache.solr.client.solrj.impl.CloudSolrServer">
	<constructor-arg name="zkHost" value="192.168.126.128:2181,192.168.126.128:2182,192.168.126.128:2183"/>
	<property name="defaultCollection" value="collection2"/>
</bean>