Linux システムで Centos7 を使って ElasticSearch ミドルウェアと共通インターフェースを構築するデモ

Linux システムで Centos7 を使って ElasticSearch ミドルウェアと共通インターフェースを構築するデモ

1. ミドルウェアの紹介

1. 基本概念

ElasticSearch は Lucene をベースにした検索サーバーです。 RESTful Web インターフェースに基づく分散型マルチユーザー全文検索エンジンを提供します。 Elasticsearch は Java で開発され、Apache ライセンスの条件に基づいてオープンソースとしてリリースされています。これは、人気の高いエンタープライズ レベルの検索エンジンです。

2. 分散データベース

分散データベース システムでは、通常、より小規模なコンピュータ システムが使用されます。各コンピュータは、別々の場所に配置できます。各コンピュータには、DBMS の完全なコピーまたは部分的なコピーがあり、独自のローカル データベースがあります。さまざまな場所にある多数のコンピュータがネットワークを介して相互接続され、完全でグローバル、論理的に集中化され、物理的に分散された大規模なデータベースが形成されます。

3. コアロール

1) ノードとクラスター

クラスターはクラスターを表します。クラスターには複数のノードがあり、そのうちの 1 つがマスター ノードです。このマスター ノードは、選挙によって生成できます。マスター ノードとスレーブ ノードはクラスター内にあります。 ES の概念の 1 つは分散化です。これは文字通り、中央ノードがないことを意味します。これはクラスターの外部に関するもので、外部から見ると ES クラスターは論理的に 1 つの全体です。単一の Elastic インスタンスはノードと呼ばれます。ノードのグループがクラスターを形成します。

2) 破片

これはインデックス シャーディングの略です。Elasticsearch は完全なインデックスを複数のシャードに分割できます。これの利点は、大きなインデックスを複数のシャードに分割し、異なるノードに分散できることです。分散検索を構成します。シャードの数はインデックスの作成前にのみ指定でき、インデックスの作成後に変更することはできません。

3) 文書
インデックス内の単一のレコードはドキュメントと呼ばれます。多数のドキュメントがインデックスを構成します。ドキュメントは JSON 形式を使用して表されます。

4) 索引

Elastic はすべてのフィールドにインデックスを作成し、データを検索するときにインデックスを直接検索できます。各インデックスの名前 (データベース名として認識されます) は小文字にする必要があります。

5) タイプ

ドキュメントは、データベース テーブル名として理解されるドキュメントをフィルター処理するために、タイプに従って仮想的に論理的にグループ化できます。

2. ミドルウェアのインストール

1. インストール環境とバージョン

セントオス7
JDK1.8
エラスティックサーチ-6.3.2

2. ダウンロードして解凍する

ダウンロード パスは現在のディレクトリのフォルダー内にあります。または、ダウンロード パスを指定することもできます。 wget -P ディレクトリ URL。

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip を実行します。
[root@localhost roo]# mv elasticsearch-6.3.2.zip /usr/local/mysoft/
[root@localhost mysoft]# elasticsearch-6.3.2.zip を解凍します

3. ソフトウェアを起動する

[root@localhost mysoft]# cd elasticsearch-6.3.2/
[root@localhost elasticsearch-6.3.2]# ./bin/elasticsearch

1) エラーを報告する

org.elasticsearch.bootstrap.StartupException: 
java.lang.RuntimeException: Elasticsearch を root として実行できません

新しいユーザーグループとユーザーを作成する

[root@localhost]# useradd esroot
[root@localhost]# パスワード esroot
[root@localhost]# グループ追加 esgroup
[root@localhost]# usermod -g esgroup esroot

esroot ユーザー認証

chown esroot /usr/local/mysoft/elasticsearch-6.3.2 -R

esrootユーザーに切り替える

[root@localhost mysoft]# su - esroot
[esroot@localhost ~]$ su #ルートユーザーに戻る

2) エラー2

elasticsearchプロセスの最大ファイル記述子[4096]が低すぎます。 
少なくとも[65536]に増加

次のコマンドをルート権限で実行します。

[root@localhost roo]# vim /etc/security/limits.conf

コンテンツを追加

*ソフトnofile65536
* ハードnofile 65536

esrootユーザーに戻る

再起動しましたが、エラーメッセージは表示されません。

4. コマンドラインテストを開く

カール ローカルホスト:9200
[roo@localhost ~]$ curl localhost:9200
{
 「名前」:「YMS44oi」、
 「クラスター名」:「elasticsearch」、
 "クラスターUUID" : "2ZXjBnkJSjieV_k1IWMzrQ",
 「バージョン」: {
 "番号" : "6.3.2",
 "build_flavor" : "デフォルト",
 "ビルドタイプ" : "zip",
 "ビルドハッシュ": "053779d",
 「ビルド日付」:「2018-07-20T05:20:23.451332Z」、
 "build_snapshot" : 偽、
 "lucene_version" : "7.3.1",
 "最小ワイヤ互換性バージョン" : "5.6.0",
 "最小インデックス互換性バージョン" : "5.0.0"
 },
 「タグライン」:「検索用です」
}

このようにして、elasticsearch-6.3.2 環境が正常に構築されます。

ポート 9200 を要求すると、Elastic は現在のノード、クラスター、バージョンなどの情報を含む JSON オブジェクトを返します。
Ctrl + C を押すと、Elastic の実行が停止します。

5. 外部アクセスを構成する

デフォルトでは、Elastic はローカル アクセスのみを許可します。リモート アクセスが必要な場合は、Elastic インストール ディレクトリの config/elasticsearch.yml ファイルを変更し、network.host のコメントを解除して、その値を 0.0.0.0 に変更してから、Elastic を再起動します。

[esroot@localhost config]$ cd /usr/local/mysoft/elasticsearch-6.3.2/config
[esroot@localhost 設定]$ vim elasticsearch.yml 
ネットワークホスト: 0.0.0.0

6. IK中国語単語セグメンテーションをインストールする

ルートユーザーに切り替える

[root@localhost elasticsearch-6.3.2]$ ./bin/elasticsearch-plugin 
インストール 
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip

3. はじめに

インデックスの作成と削除

1. インデックスを作成する

[esroot@localhost ~]$ curl -X PUT 'localhost:9200/esindex01'
# データを返す {
 「承認済み」:true、
 「shards_acknowledged」: true、
 "インデックス": "esindex01"
}

サーバーは JSON オブジェクトを返し、acknowledged: true フィールドは操作が成功したことを示します。

2. インデックスを削除する

[esroot@localhost ~]$ curl -X DELETE 'localhost:9200/esindex01'
{"承認済み":true}

acknowledged: true フィールドは、操作が成功したことを示します。

4. ソースコードアドレス

GitHub アドレス: Cicadasmile https://github.com/cicadasmile
コードクラウドアドレス: Cicadasmile https://gitee.com/cicadasmile

要約する

上記は、編集者が紹介した Linux システムの Centos7 で ElasticSearch ミドルウェアと共通インターフェースを構築するデモです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Linux DMAインターフェースの知識ポイントの詳細な説明
  • Linux で利用可能なネットワーク インターフェイスを表示する方法
  • LinuxシステムはPythonを使用してネットワークインターフェースを監視し、ネットワークの入出力を取得します。
  • Linux での BSD ソケット開発の基礎入門
  • Linux オペレーティングシステムでの BSD ソケット開発の基礎入門
  • Linux /etc/network/interfaces 設定インターフェース方法

<<:  MySQL での実行計画の explain コマンド例の詳細な説明

>>:  Vueは遅延読み込みによりページの応答速度を向上

推薦する

Windows10にmysql5.7.18をインストールするチュートリアル

このチュートリアルでは、MySQL 5.7.18のインストールと設定方法を参考までに紹介します。具体...

HTML+CSS3+JSで実装されたドロップダウンメニュー

成果を達成する html <div class="コンテナ"> &l...

フォーム要素とプロンプトテキストが揃っていない問題

最近のプロジェクトでは、多くのフォーム、特にチェックボックスとラジオボタンの作成が含まれます。しかし...

keepalived+nginx の高可用性を実装する方法の例

1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...

MySQL共通ストレージエンジンの機能と使用方法の詳細な説明

この記事では、一般的な MySQL ストレージ エンジンの機能と使用方法を例を使って説明します。ご参...

フォームの読み取り専用属性と無効な属性についての簡単な説明

フォーム内の読み取り専用および無効な属性1. 読み取り専用:サーバーは、ユーザーがデータを変更するこ...

MySQL は、あるテーブルのデータに基づいて別のテーブルの特定のフィールドを更新します (SQL ステートメント)

次のコードは、MySQL が 1 つのテーブルのデータに基づいて別のテーブルのいくつかのフィールドを...

UbuntuでOpenCVをコンパイルしてインストールする方法

opencv2 の簡単なインストール: conda インストール --channel https:/...

Linux環境変数の設定戦略の詳細な説明

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...

MySql マスタースレーブレプリケーションメカニズムの包括的な分析

目次マスタースレーブレプリケーションメカニズム非同期レプリケーション準同期レプリケーションマスタース...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

Mongodb の GUID 表示の問題の詳細な分析

問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...