CentOs7.3ビルドSolrCloudクラスターサービス

CentOs7.3ビルドSolrCloudクラスターサービス#

I.概要#

Luceneは、反転の原理を使用してJava言語で記述されたテキスト検索ライブラリです。

Solrは、Luceneをベースにしたテキスト検索アプリケーションサービスです。 Solrの展開方法には、スタンドアロン、マルチマシンMaster-Slaver、およびCloudが含まれます。

SolrCloudは、SolrとZookeeperに基づく分散検索ソリューションです。インデックスがどんどん大きくなると、1つのシステムでディスクの需要に対応できなくなり、クエリ速度が遅くなりますが、現時点では分散インデックスが必要です。分散インデックスでは、元の大きなインデックスが複数の小さなインデックスに分割されます。Solrは、これらの小さなインデックスによって返された結果をマージして、クライアントに返すことができます。

2.機能#

SolrCloudにはいくつかの機能があります。

一元化された構成情報は、一元化された構成にZKを使用します。起動時に、Solr関連の構成ファイルをZookeeperにアップロードするように指定できます。これは、複数のマシンで共有できます。 ZKのこれらの構成はローカルにキャッシュされなくなり、SolrはZKの構成情報を直接読み取ります。すべてのマシンは、構成ファイルの変更を認識できます。さらに、Solrのタスクの一部は、メディアとしてZKを介してリリースされます。目的は耐障害性です。タスクを受信したが、タスクの実行中にクラッシュしたマシンは、再起動後、またはクラスターが候補を選択したときに、未完了のタスクを再度実行できます。

自動フォールトトレランス SolrCloudはインデックスをシャードし、シャードごとに複数のレプリケーションを作成します。各レプリケーションは外部サービスを提供できます。レプリケーションの失敗は、インデックスサービスに影響を与えません。さらに強力なのは、障害が発生したマシンでインデックスレプリケーションを自動的に再構築し、他のマシンで使用できることです。

ほぼリアルタイムの検索即時プッシュレプリケーション(スロープッシュもサポート)。新しく追加されたインデックスは、数秒で取得できます。

自動的に [負荷分散](https://cloud.tencent.com/product/clb?from=10680)クエリの圧力を分散するためにクエリを実行するときに、複数のレプリケーションにインデックスを付けるSolrCloudを複数のマシンに分散できます。クエリの負荷が高い場合は、マシンを拡張してレプリケーションを追加することで速度を落とすことができます。

自動的に分散されたインデックスとインデックスシャードは、ドキュメントを任意のノードに送信し、正しいノードに転送されます。

トランザクションログは、ドキュメントがディスクにインデックス付けされていない場合でも、更新が失われないことを保証します。

言及する価値のあるその他の機能は次のとおりです。

**インデックスはHDFS **に保存されます。インデックスのサイズは通常Gから数十Gの間で、数百のGがあります。このような関数は実用的ではない場合があります。ただし、インデックスを作成するデータが数億ある場合は、それを検討することもできます。この機能の最大のメリットは、以下の「MRによる一括インデックス作成」との併用にあると思います。

**MR **を使用してバッチでインデックスを作成するこの機能を使用しても、インデックスの作成が遅いことを心配していますか?

**強力なRESTfulAPI **一般に、考えられるすべての管理機能は、このAPIを介して呼び出すことができます。いくつかの保守および管理スクリプトを作成する方がはるかに便利です。

優れた管理インターフェース主な情報は一目でわかります。SolrCloudの展開と配布をグラフィカルに確認できます。もちろん、不可欠なデバッグ機能があります。

3つ目は、SolrCloud#の基本概念です。

クラスタークラスター:1つのユニットとして論理的に管理されるSolrノードのグループで、クラスター全体が同じスキーマとSolrConfigのセットを使用します

ノードノード:Solrを実行しているJVMインスタンス

コレクション:SolrCloudクラスター内の論理的に完全なインデックス。多くの場合、1つ以上のシャードに分割されます。これらのシャードは同じ構成セットを使用します。シャードの数が1を超える場合、インデックス付けスキームは分散インデックスです。

コア:Solrコア。1つのSolrには1つ以上のSolrCoreが含まれます。各Solrコアは独立してインデックス作成およびクエリ機能を提供できます。Solrコアは、管理の柔軟性を高め、リソースを共有するために提案されています。
SolrCloudで使用される構成はZookeeperにあり、従来のSolrCore構成ファイルはディスクの構成ディレクトリにあります。

構成セット:SolrCoreがサービスを提供するために必要な構成ファイルのセット。各構成セットには名前があります。 solrconfig.xmlとschema.xmlを含める必要があります。初回に加えて、これら2つのファイルの構成内容によっては、他のファイルを含める必要がある場合があります。
構成セットはZookeeperに保存され、upconfigコマンドを使用して再アップロードまたは更新できます。Solrの起動パラメーターbootstrap_confdirを使用して初期化または更新できます。

シャード:コレクションの論理的なシャード。各シャードは1つ以上のレプリカに分割され、リーダーは選挙によって決定されます。

レプリカ:シャードのコピー。各レプリカはSolrのコアに存在します。

リーダー:選挙に勝ったシャードレプリカ。各シャードには複数のレプリカがあります。リーダーを決定するには、これらのレプリカを選択する必要があります。選挙はいつでも行うことができます。インデックス操作を実行すると、SolrCloudはこのシャードに対応するリーダーにインデックス操作要求を送信し、リーダーはそれらをすべてのシャードレプリカに配布します。

4、Solrドキュメント#

[ Apache SolrCloudリファレンスガイド](http://lucene.apache.org/solr/guide/6_6/solrcloud.html)

http://lucene.apache.org/solr/guide/6_6/solrcloud.html

[ Apache Solrドキュメント](https://cwiki.apache.org/confluence/display/solr/)

https://cwiki.apache.org/confluence/display/solr/

[ Solrパラメータ設定](https://cwiki.apache.org/confluence/display/solr/Format+of+solr.xml)

https://cwiki.apache.org/confluence/display/solr/Format+of+solr.xml

[ Solr制御スクリプトリファレンス](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=50234737)

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=50234737

周囲##

VMwareバージョン番号:12.0.0
CentOSバージョン:CentOS 7.3.1611
Solrバージョン:solr-6.6.0
ZooKeeperバージョン:ZooKeeper-3.4.9.tar.gz特定のリファレンス["CentOs7.3 Build ZooKeeper-3.4.9 Cluster Cluster Service"](https://segmentfault.com/a/1190000010807875)

https://segmentfault.com/a/1190000010807875

JDK環境:jdk-8u144-linux-x64.tar.gz特定のリファレンス["CentOs7.3 install JDK1.8"](https://segmentfault.com/a/1190000010716919)

https://segmentfault.com/a/1190000010716919

予防##

ファイアウォールをオフにする

$ systemctl stop firewalld.service 

Solr 6(およびSolrJクライアントライブラリ)のJavaサポートの最小バージョンはJava8になりました。

Solrのインストール#

tarファイルを抽出します##

$ cd /opt/
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
$ tar -zxf solr-6.6.0.tgz 
$ cd solr-6.6.0

クラスター構成#

1. solr.in.shを編集します##

クラスタ内の各マシンは、次の手順に従って構成および起動する必要があります
まず、solrインストールディレクトリのビンに移動し、solr.in.shファイルを編集します
SOLR_HOSTを検索し、コメントを外して、独自のIPに設定します
SOLR_TIMEZONEを検索し、コメントを外して、 UTC + 8に設定します

node1のsolr.in.shを次の構成に変更します

特にSolrCloudモードで実行している場合は、ZooKeeperに登録するときにノードのアドレスが決定されるため、Solrサーバーのホスト名を設定することをお勧めします。ipの使用はお勧めしません。

SOLR_HOST="node1"
SOLR_TIMEZONE="UTC+8"

2. Solr構成をコピーします##

**1. 編集したSolrファイルとnode1の構成を scp -rを介してクラスターnode2、node3にコピーします

$ for a in{2..3};do scp -r /opt/solr-6.6.0/ node$a:/opt/solr-6.6.0; done

2. 次に、node2、node3の solr.in.sh SOLR_HOSTをマシンのIPに変更します

フォーマット SOLR_HOST =" ip "

$ vi /opt/solr-6.6.0/bin/solr.in.sh

3. ZooKeeperクラスターを開始します##

$ for a in{1..3};do ssh node$a "source /etc/profile; /opt/zookeeper-3.4.9/bin/zkServer.sh start"; done

4. SolrCloudクラスターを開始します##

どのマシンでも、SolrCloudクラスターを起動し、ZooKeeperクラスターに関連付けます

$ for a in{1..3};do ssh node$a "source /etc/profile; /opt/solr-6.6.0/bin/solr start -cloud -z node1:2181,node2:2181,node3:2181 -p 8983 -force"; done

5. クラスターライブラリを作成します##

どのマシンでも

$ /opt/solr-6.6.0/bin/solr create_collection -c test_collection -shards 2-replicationFactor 3-force

- cコレクションの名前を指定します
- shardsはシャードの数を指定します。これは-sと省略でき、インデックスデータはこれらのシャードに分散されます。
- ReplicationFactor各シャードのコピー数、および各シャードは少なくとも1つの物理コピーで構成されます

応答

Connecting to ZooKeeper at node3:2181...
INFO  -2017-08-2411:57:30.581; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at node3:2181 ready
Uploading /opt/solr-6.6.0/server/solr/configsets/data_driven_schema_configs/conf for config test_collection to ZooKeeper at node3:2181

Creating newcollection'test_collection' using command:
http://192.168.252.121:8983/solr/admin/collections?action=CREATE&name=test_collection&numShards=2&replicationFactor=3&maxShardsPerNode=2&collection.configName=test_collection

{" responseHeader":{"status":0,"QTime":11306},"success":{"192.168.252.123:8983_solr":{"responseHeader":{"status":0,"QTime":9746},"core":"test_collection_shard1_replica2"},"192.168.252.122:8983_solr":{"responseHeader":{"status":0,"QTime":9857},"core":"test_collection_shard1_replica3"},"192.168.252.121:8983_solr":{"responseHeader":{"status":0,"QTime":9899},"core":"test_collection_shard2_replica1"}}}

SolrCloudステータスチャート

あなたは2つの破片と3つのSolrのコピーを見ることができます

6. サービスステータス##

SolrCloudのステータスがわからない場合

$ /opt/solr-6.6.0/bin/solr status

応答

Found 1 Solr nodes: 

Solr process 2926 running on port 8983{"solr_home":"/opt/solr-6.6.0/server/solr","version":"6.6.0 5c7a7b65d2aa7ce5ec96458315c661a18b320241 - ishan - 2017-05-30 07:32:53","startTime":"2017-08-24T08:32:16.683Z","uptime":"0 days, 0 hours, 34 minutes, 51 seconds","memory":"63.8 MB (%13) of 490.7 MB","cloud":{"ZooKeeper":"node1:2181,node2:2181,node3:2181","liveNodes":"3","collections":"1"}}

/opt/solr-6.6.0/bin/solr create_collection -c www_ymq_io_collection -shards 2 -replicationFactor 3 -force

7. クラスタライブラリを削除する##

任意のマシンで、コマンド ./solr delete-cを実行します<collection>

チェックします
/opt/solr-6.6.0/server/solr/test_collection_shard1_replica2``/opt/solr-6.6.0/server/solr/test_collection_shard2_replica2

ディレクトリを他のコレクションで使用するかどうかを設定します。そうでない場合、ディレクトリはSolrCloudクラスターから削除されます

$ /opt/solr-6.6.0/bin/solr  delete-c test_collection
Connecting to ZooKeeper at node1:2181,node2:2181,node3:2181
INFO  -2017-08-2417:56:53.679; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at node1:2181,node2:2181,node3:2181 ready

Deleting collection 'test_collection' using command:
http://node3:8983/solr/admin/collections?action=DELETE&name=test_collection

{" responseHeader":{"status":0,"QTime":924},"success":{"node1:8983_solr":{"responseHeader":{"status":0,"QTime":69}},"node3:8983_solr":{"responseHeader":{"status":0,"QTime":86}},"node2:8983_solr":{"responseHeader":{"status":0,"QTime":91}}}}

8. クラスターを停止します##

どのマシンでも、SolrCloudクラスターを停止します

SolrCloudモードでSolrを停止するには、 -allを使用できます

$ for a in{1..3};do ssh node$a "source  /etc/profile; /opt/solr-6.6.0/bin/solr stop -all "; done

または

$ for a in{1..3};do ssh node$a "source /etc/profile; /opt/solr-6.6.0/bin/solr stop -cloud -z node1:2181, -z node2:2181, -z node3:2181 -p 8983 -force"; done

9. ステータスのコピー##

healthcheckコマンドは、コピー数、現在の実行ステータス、正常かどうか、各コピーの実行時間、メモリとアドレス(クラスター内のコピーの場所)など、コレクション内の各コピーに関する基本情報を収集します。

$ /opt/solr-6.6.0/bin/solr healthcheck -c test_collection -z node1:2181,node2:2181,node3:2181-p 8983-force

応答

INFO  -2017-08-2416:34:26.906; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at node1:2181,node2:2181,node3:2181 ready
{" collection":"test_collection","status":"healthy","numDocs":0,"numShards":2,"shards":[{"shard":"shard1","status":"healthy","replicas":[{"name":"core_node3","url":"http://node1:8983/solr/test_collection_shard1_replica1/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 2 minutes, 10 seconds","memory":"58.6 MB (%12) of 490.7 MB","leader":true},{"name":"core_node5","url":"http://node2:8983/solr/test_collection_shard1_replica3/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 1 minutes, 58 seconds","memory":"50.2 MB (%10.2) of 490.7 MB"},{"name":"core_node6","url":"http://node3:8983/solr/test_collection_shard1_replica2/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 1 minutes, 46 seconds","memory":"56.3 MB (%11.5) of 490.7 MB"}]},{"shard":"shard2","status":"healthy","replicas":[{"name":"core_node1","url":"http://node1:8983/solr/test_collection_shard2_replica1/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 2 minutes, 10 seconds","memory":"58.6 MB (%12) of 490.7 MB","leader":true},{"name":"core_node2","url":"http://node3:8983/solr/test_collection_shard2_replica2/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 1 minutes, 46 seconds","memory":"58.8 MB (%12) of 490.7 MB"},{"name":"core_node4","url":"http://node2:8983/solr/test_collection_shard2_replica3/","numDocs":0,"status":"active","uptime":"0 days, 0 hours, 1 minutes, 58 seconds","memory":"51.9 MB (%10.6) of 490.7 MB"}]}]}

10. ZK管理構成##

構成ファイルをZooKeeperクラスターにアップロード

使用可能なパラメーター(すべてのパラメーターが必要です)

- n<name> ZooKeeperで設定された構成名は、管理インターフェイスから表示できます。メニューの[クラウド]をクリックして、[ツリー/構成]、[構成リスト]を選択します。
- d<configset dir> 構成はアップロードパスに設定されます。パスには「conf」ディレクトリが必要です。このディレクトリには、solrconfig.xmlなどが含まれています。絶対パスを提供するのが最善です
- z<zkHost> Zookeeper IPポート、複数のzkは"、 "で区切られます

SolrCloudは、Zookeeperクラスターを使用して、構成ファイルの変更が各ノードに時間内に同期されるようにし、構成ファイルをZookeeperクラスターにアップロードできるようにします。

$ /opt/solr-6.6.0/bin/solr zk upconfig  -z node1:2181,node2:2181,node3:2181-n mynewconfig  -d /opt/solr-6.6.0/server/solr/configsets/basic_configs/

応答

Connecting to ZooKeeper at node1:2181,node2:2181,node3:2181...
Uploading /opt/solr-6.6.0/server/solr/configsets/basic_configs/conf for config mynewconfig to ZooKeeper at node1:2181,node2:2181,node3:2181

ZooKeeperクラスターにアップロードされたsolr構成を削除します

rm削除 -r再帰的に削除

$ /opt/solr-6.6.0/bin/solr zk rm -r  /configs/mynewconfig -z node1:2181,node2:2181,node3:2181

応答

Connecting to ZooKeeper at node1:2181,node2:2181,node3:2181...
Removing Zookeeper node /configs/mynewconfig from ZooKeeper at node1:2181,node2:2181,node3:2181 recurse:true

Contact

Recommended Posts

CentOs7.3ビルドSolrCloudクラスターサービス
Centos6.9ビルドrabbitmq3.6.8クラスター
Centos7ビルドKubernetesクラスター
Centos7ビルドDNSサービス
CentOs7.3ビルドSolrスタンドアロンサービス
CentOs7.3ビルドRabbitMQ3.6スタンドアロンサービス
CentOs7.3ビルドZooKeeper-3.4.9スタンドアロンサービス
CentOS8でPXCクラスターを構築する
CentOS7ビルドジェンキンス
Centosビルドlnmp
Centos7ビルドpython3.8.5 + scrapy + gerapy
CentOS7ビルドジェリットコードレビューサービスメソッド
CentOS7.3 64ビット、ビルドZabbix3.4
CentOSビルドプライベートgit
Linux(centos7)ビルドgitlab
centos7でk8s1.9.9をビルドする
CentOS6.7ビルドLNMP環境
CentOS7.3.1611はk8s1.5.2クラスターを展開します
CentOS7はDockerサービスをインストールします
CentOS6インストールcouchdb2クラスター
Centos7.6ビルドLNMP環境
CentOS7はRabbitMQサービスを展開します
CentOS6.8はzookeeperクラスターを展開します
CentOS7はsaltstackサービスを展開します
CentOSでHadoopを構築する
CentOS7はNFSサービスを展開します
Centos7はKubernetesクラスターを展開します
Centos6.8はvncサービスを展開します
CentOS7はk8sクラスターを展開します
CentOS7ビルドLNMP環境
ランチャーを使用して、CentOS7でK8sクラスターを構築します
CentOS7デプロイvsftp(FTP)サービス
Centos6.5でドッカー環境を構築する
CentOS7でOpenV **サーバーを構築する
CentOS7.6でzabbixモニタリングzabbix4.2をビルドする
まず、Centos7でCephストレージクラスターを構築してみてください
Centos7.4デプロイメント構成Elasticsearch5.6クラスター
CentOS7でOpenLDAPサーバーを構築する
CentOS7インストールrabbitmqクラスター(バイナリ)
Centos7へのGlusterfsクラスターのインストール
CentOSでのRedisクラスターのインストール
CentOS7.6でzabbixモニタリングzabbix4.2をビルドする
CentOS 7 GaleraClusterインストールガイド
Centos7.2 /7.3クラスターインストールKubernetes1.8.4 +ダッシュボード
CentOSでMariaDBレプリケーションを構築する
CentOSでのRedisクラスターのインストール
Centos7.2展開vncサービスレコード
Centos7インストールk8sクラスター1.15.0バージョン
Centos7インストールjdkおよびパッケージサービスサービス
CentOS 7はNTP、SSHサービスをセットアップします
Centos6.9でのRabbitMQクラスター展開レコード
Centos7hadoopクラスターのインストールと構成
CentOS7でのElasticsearchクラスター展開レコード
CentOSはクラウドサービスプラットフォームを構築します
CentOS8-NFSサービスをインストールして構成する
gitlabを構築するためのCentos6メソッドの手順
centos7でFTPサーバーを構築する
dockerに基づいてElasticsearch6.2.4(centos)を構築する
LinuxでNginx環境を構築する(CentOS)
CentOS 7Tomcatサービスのインストールと構成
(centos7)linuxビルドnginxロードバランシングビルド