Solrcloud、tomcat、zookeeperのインストール構成



Solrcloud Tomcat Zookeeper Installation Configuration



以前は、プロジェクトで使用されたsolr3.6が原因で、サーバーが常に不可解にハングし、さまざまなソリューションが失敗していました。そこで、solr4に変更してみました。 solrcloudクラスターとzookeeperクラスターを試して、効果がどのように機能するかを確認したいと思います。実際の効果は3.6よりはるかに安定しています。プロジェクト内のテストの特定の構成について話しましょう。 3つのzookperサーバーと3つのsolrサーバーを構成しました。テストされた複数のマシンがないため、zookeeperクラスターはすべて1つのサーバー上にあり、Tomcatは3つのサーバー上にデプロイされます。

Zookeeperとは何ですか?

ZooKeeper名前が示すように、zookeeperは、Hadoop、Hive、Pig、Apache Hbase、Apache Solr、およびLinkedIn先生の管理者です。 ZooKeeperは、分散型のオープンソース分散型アプリケーション調整サービスです。 ZooKeeperは、同期サービス、構成保守、命名サービスなどの分散サービスを実装するFastPaxosアルゴリズムに基づいています。

Zookeeperのインストールと構成

Zookeeperのダウンロード

http://www.apache.org/dyn/closer.cgi/zookeeper/

Zookeeperの構成

--------------- まず、/ etc / hostsの下のホスト名マッピング127.0.1.1を127.0.0.1に変更します。 --------------- (1)飼育係に抽出する [プレーン] プレーンビュー コピー
  1. tar -xf -C / home / myuser / zookeeper /
zookeeperA、zookeeperB、zookeeperCという名前のzookeeperフォルダーのコピーを3つコピーします。 そして、zooA、zooB、zooCという名前のデータスナップショットとログストレージフォルダーを作成します。 (2)対応するzookeeper構成ファイルを編集し、zookeeperconfのzoo_sample.cfgをzoo.cfgにコピーします。 [プレーン] プレーンビュー コピー
  1. cd / home / myuser / zookeeperA / conf
  2. cp zoo_sample.cfg zoo.cfg
(3)zoo.cfgを変更します [html] プレーンビュー コピー
  1. #各ティックのミリ秒数
  2. tickTime=2000年
  3. #最初の目盛りの数
  4. #同期フェーズには時間がかかる場合があります
  5. initLimit=10
  6. #間を通過できるティック数
  7. #リクエストを送信して確認応答を取得する
  8. syncLimit=5
  9. #スナップショットが保存されているディレクトリ。
  10. #ストレージに/ tmpを使用しないでください。ここの/ tmpは
  11. #日本酒の例。
  12. dataDir= / home / myuser / zooA / data
  13. #クライアントが接続するポート
  14. clientPort=2181
  15. #ZooKeeperサーバーとそのポート番号#ZooKeeperアンサンブルは、アンサンブル内の他のすべてのマシンについて認識している必要があります。#dataDirに「myid」ファイルを作成してサーバーIDを指定します。
  16. server.1=127.0.0.1:2888:3888
  17. server.2=127.0.0.1:2988:3988
  18. server.3=127.0.0.1:2088:3088
  19. #のメンテナンスセクションを必ずお読みください
  20. #自動パージをオンにする前の管理者ガイド。
  21. #http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  22. #dataDirに保持するスナップショットの数
  23. autopurge.snapRetainCount=3
  24. #タスク間隔を時間単位でパージ
  25. #自動パージ機能を無効にするには、「0」に設定します
  26. autopurge.purgeInterval=1
  27. dataLogDir= / home / myuser / zooA / log
tickTime:ハートビート時間。接続の存在を確認するために、ミリ秒単位で、最小タイムアウトは2ハートビートです。 initLimit:他のサーバーが接続してデータを初期化できるハートビートの数。 ZooKeeperによって管理されるデータが大きい場合は、それに応じてこの値を増やします。 clientPort:サービスのリスニングポート dataDir:インメモリデータベースのスナップショットを保存するために使用されるフォルダー。クラスターのmyidファイルもこのフォルダーに存在します(注:構成ファイルには、コメントアウトされている場合でも、dataDirを1つだけ含めることができます)。 dataLogDir:トランザクションログディレクトリを個別に設定するために使用されます。トランザクションログの分離により、通常のログおよびスナップショットとの競合を回避できます。
syncLimit:フォロワーが同期できるtickTimeの数。フォロワーが遅れすぎると破棄されます。
(4)myidファイルを作成します
[プレーン] プレーンビュー コピー
  1. cd / home / myuser / zooA / data
  2. sudo sh -c'echo '1' >> myid '
他のフォルダはmyidファイルの作成に似ています。zookeeperBは2、zookeeperCは3です。 (5)zookeeperを起動します [プレーン] プレーンビュー コピー
  1. cd / home / myuser / zookeeperA / bin
  2. sudo sh zkServer.sh start
動物園の飼育係のステータスを表示する [プレーン] プレーンビュー コピー
  1. [root @ xxxxx bin] #sh zkServer.sh status
  2. JMXはデフォルトで有効になっています
  3. 設定の使用:/ home / weibo / zookeeperA / bin /../ conf / zoo.cfg
  4. モード:フォロワー
OKを開始し、他の2つの動物園の飼育係を順番に開始します。最初の動物園の飼育係を開始した後、ビンの下のzookeeper.outでエラーを確認でき、接続が拒否されました。正常です。 (6)クライアント接続zookeeper [プレーン] プレーンビュー コピー
  1. [root @ xxxxx bin] #sh zkCli.sh
  2. localhost:2181に接続しています
  3. 2013-05-10 15:00:25,363 [myid:]-情報[main:root @ xxxxx]-クライアント環境:zookeeper.version = 3.4.5-1392090、2012年9月30日17:52GMTに構築
  4. 2013-05-10 15:00:25,369 [myid:]-情報[main:root @ xxxxx]-クライアント環境:host.name = localhost
  5. 2013-05-10 15:00:25,370 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.version = 1.6.0_33
  6. 2013-05-10 15:00:25,371 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.vendor = SunMicrosystems Inc.
  7. 2013-05-10 15:00:25,372 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.home = / home / weibo / jdk1.6.0_33 / jre
  8. 2013-05-10 15:00:25,373 [myid:]-INFO [main:root @ xxxxx]-クライアント環境:java.class.path = / home / weibo / zookeeperA / bin /../ build / classes:/ home / weibo / zookeeperA / bin /../ build / lib / *。jar:/ home / weibo / zookeeperA / bin /../ lib / slf4j-log4j12-1.6.1.jar:/ home / weibo / zookeeperA / bin /../ lib / slf4j-api-1.6.1.jar:/ home / weibo / zookeeperA / bin /../ lib / netty-3.2.2.Final.jar:/ home / weibo / zookeeperA / bin / ../lib/log4j-1.2.15.jar:/home/weibo/zookeeperA/bin/../lib/jline-0.9.94.jar:/home/weibo/zookeeperA/bin/../zookeeper-3.4 .5.jar:/ home / weibo / zookeeperA / bin /../ src / java / lib / *。jar:/ home / weibo / zookeeperA / bin /../ conf:/home/weibo/jdk1.6.0_33 / lib:。
  9. 2013-05-10 15:00:25,373 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.library.path = / home / weibo / jdk1.6.0_33 / jre / lib / amd64 / server :/home/weibo/jdk1.6.0_33/jre/lib/amd64:/home/weibo/jdk1.6.0_33/jre /../ lib / amd64:/ usr / java / packages / lib / amd64:/ usr / lib64:/ lib64:/ lib:/ usr / lib
  10. 2013-05-10 15:00:25,374 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.io.tmpdir = / tmp
  11. 2013-05-10 15:00:25,375 [myid:]-情報[main:root @ xxxxx]-クライアント環境:java.compiler =
  12. 2013-05-10 15:00:25,375 [myid:]-情報[main:root @ xxxxx]-クライアント環境:os.name = Linux
  13. 2013-05-10 15:00:25,376 [myid:]-情報[main:root @ xxxxx]-クライアント環境:os.arch = amd64
  14. 2013-05-10 15:00:25,377 [myid:]-情報[main:root @ xxxxx]-クライアント環境:os.version = 2.6.32-279.5.2.el6.x86_64
  15. 2013-05-10 15:00:25,377 [myid:]-情報[main:root @ xxxxx]-クライアント環境:user.name = root
  16. 2013-05-10 15:00:25,378 [myid:]-情報[main:root @ xxxxx]-クライアント環境:user.home = / root
  17. 2013-05-10 15:00:25,379 [myid:]-情報[main:root @ xxxxx]-クライアント環境:user.dir = / home / weibo / zookeeperA / bin
  18. 2013-05-10 15:00:25,382 [myid:]-INFO [main:root @ xxxxx]-クライアント接続を開始しています、connectString = localhost:2181 sessionTimeout = 30000 root @ xxxxx
  19. ZooKeeperへようこそ!
  20. 2013-05-10 15:00:25,604 [myid:]-INFO [main-SendThread(localhost:2181):root @xxxxx]-サーバーlocalhost / 127.0.0.1:2181へのソケット接続を開いています。 SASLを使用して認証を試みません(ログイン構成を見つけることができません)
  21. JLineサポートが有効になっている
  22. 2013-05-10 15:00:25,649 [myid:]-INFO [main-SendThread(localhost:2181):root @ xxxxx] -localhost / 127.0.0.1:2181へのソケット接続が確立され、セッションが開始されました
  23. 2013-05-10 15:00:25,842 [myid:]-INFO [main-SendThread(localhost:2181):root @xxxxx]-サーバーlocalhost / 127.0.0.1:2181でセッションの確立が完了しました。sessionid= 0x13e7e067764005d、ネゴシエートされたタイムアウト= 30000
  24. ワッチャー::
  25. WatchedEvent状態:SyncConnectedタイプ:なしパス:null
  26. [zk:localhost:2181(CONNECTED)0] ls /
  27. [configs、zookeeper、clusterstate.json、aliases.json、live_nodes、overseer、overseer_elect、collections]
  28. [zk:localhost:2181(CONNECTED)1]
構成:アップロードされたプロファイル情報を保存します Clusterstate.json:クラスター状態json エイリアス:エイリアスjson Live_node:Solrサーバーが起動すると、ここに登録されます。 監督者:シャード情報を保存する Overseer_elect:ノードの選択 コレクション:すべてのコレクション

SolrとTomcatのインストールと構成

(1)solr4.2をダウンロードし、構成ファイルのzookeeperをsolr-4.2.1 example solr collection1 confディレクトリーにアップロードします。 (2)solr構成ファイルをzookeeperにアップロードします [プレーン] プレーンビュー コピー
  1. java -classpath。:/ home / weibo / tomcat_solr_qq / webapps / solr / WEB-INF / lib / * org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0 .0.1:2381 -confdir / home / weibo / solr-config -confname weiboconfig
(3)構成ファイルをターゲットコレクションにリンクします [プレーン] プレーンビュー コピー
  1. java -classpath。:/ home / weibo / tomcat_solr_qq / webapps / solr / WEB-INF / lib / * org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection weibocollection -confname weiboconfig -zkhost 127.0.0.1:2181,127.0 .0.1:2281,127.0.0.1:2381
(4)3つのtomcatをコピーし、conf / Catalina / localhostにsolr.xmlを作成します(ディレクトリが存在しない場合は、自分で作成してください)。内容は次のとおりです。 [プレーン] プレーンビュー コピー
crossContextをtrueに設定することはできません。ここに注意してください (5)solrホームディレクトリにsolr.xmlを作成します [プレーン] プレーンビュー コピー
対応するポート番号に対応する他のTomcat (6)tomcat bin / catalina.sh(Windowsの下のcatalina.bat)を編集し、参加します [プレーン] プレーンビュー コピー
  1. JAVA_OPTS = '-DzkHost = 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381'
ここで、solrとzookeeperが相互作用します。 (7)Tomcatを順番に起動し、コアとシャードを作成し、Solrにアクセスします ----------------------------------ここでは、簡単なテストのために、レプリカノードではなくマスターノードのみを作成しました。必要に応じて、この手順をスキップして、次のコレクション構成を直接確認してください。----------------- [プレーン] プレーンビュー コピー
  1. http:// localhost:8080 / solr / admin / collections?action = CREATE&name = weibocollection&numShards = 3&replicationFactor = 1


コレクション、シャード、レプリケーション、コア構成

まず、コレクションを作成し、そのレプリカの数、シャードの数を示します [プレーン] プレーンビュー コピー
  1. http:// localhost:8080 / solr / admin / collections?action = CREATE&name = weibocollection&numShards = 3&replicationFactor = 3&maxShardsPerNode = 3
solr4.2は自動的にレプリケーションを作成するため、ここで手動でレプリケーションを作成する必要はありません。

最終

動物園の飼育係は半減期なので、ここでは飼育係を3人使っているので、1人まで死ぬことができ、仕事を続けることができます。公式の推奨事項は、奇数のサーバーを使用することです。