1.はじめに
Elasticsearchは分散かつスケーラブルなリアルタイム検索および分析エンジンでは、Apache Luceneの(TM)に基づいて、フルテキスト検索エンジンのコースElasticsearchのLuceneに基づいて、検索エンジンだけで簡単ではありません、それはまた、全文検索機能だけでなく、次の操作を実行できます。
- リアルタイムのファイルストレージを分散し、それが検索できるように、各フィールドがインデックス化されています。
- 検索エンジンの分散型リアルタイム分析。
- それは、数百台のサーバーに拡張することができ、処理レベルのPB構造化または非構造化データ
リンクス、Jingdongモールこのように、ユーザーは通常、彼らが購入したい商品を見つけるために検索を指示し、モールの家にアクセスします。量が非常に大きな複雑な分類です。
あなたが正しく取引を容易にするために、できるだけ早く、ユーザーが商品を望んで表示し、かつ合理的なフィルタリングすることができた場合は、研究対象の検索システムのコアです。
この複雑なビジネスおよびデータ検索の量に直面して、従来のデータベース検索を使用すると、我々は、一般的なSolrの、Elasticsearchとして、フルテキスト検索技術を使用しますが、不十分であるように思われました。
弾性公式サイト:https://www.elastic.co/cn/
弾性が製品とソリューションの完全なラインがあります。その前に、Elasticsearch、Kibana、Logstashなどがあり、私たちはしばしばその3つのELKテクノロジー・スタックを言います。
Elasticsearch(公式サイト:https://www.elastic.co/cn/products/elasticsearch)弾性スタックは、コア技術です。詳細は、公式のネットワークを参照してください。
Elasticsearchは、次の特性があります。
- (Solrの登録センターとして飼育係を使用して、手動で設定する必要があります)クラスタを設定手動で配布
- 安らかなスタイル、すべてがElasticsearchで更新データをほぼ完全に同期され、リアルタイム検索の近くに使いやすい、REST APIの原則に従ってください。
2、インストール
現実の世界のシナリオをシミュレートするために、我々はLinuxでElasticsearchをインストールします。仮想マシン(上記JDK1.8が必要です)
2.1:最初に新しいユーザーを作成します(セキュリティ上の理由から、elasticsearchデフォルトのrootアカウントで実行することはできません。)
ユーザーを作成します。useraddのesuserの
パスワードを:passwdのesuserを
2.2:インストールパッケージをダウンロードしてください
ダウンロードLinuxのバージョンを選択するための公式ウェブサイト:https://www.elastic.co/cn/products/elasticsearch
ダウンロードすることができますを選択し、選択Linuxのバージョン
2.3:インストールパッケージをアップロードし、抽出
新しいフォルダがします。mkdir ES
/ホーム/ ESディレクトリ:私たちは、にインストールパッケージをアップロードします
解凍します。tar -zxvf elasticsearch- 7.3。2 -linux- x86_64.tar.gzの ディレクトリ名の変更:MV elasticsearch - 7.3。2 elasticsearch
完了すると、ディレクトリ構造を表示します。
2.4:プロファイルの変更
CD設定
2がある設定ファイルを変更する必要があります。
ElasticsearchのLucene、およびその下のLuceneは、Java達成に基づいて、私たちはJVMパラメータを設定する必要があります。編集jvm.options
我々jvm.options
デフォルトの設定を変更します。-Xms1g -Xmx1Gです
編集は、データを変更し、ディレクトリをログelasticsearch.yml
viのelasticsearch.yml
node.name:ノード-1#設定したES現在のノード名(デフォルトは注釈され、デフォルトのノード名がある)
cluster.name:私の#のデフォルトは、アプリケーション・アノテーション、およびデフォルトのクラスタ名があり
path.dataは、 :/ホーム/ ES / データ#データディレクトリの場所
path.logs: /ホーム/ ES /ログディレクトリの場所ログ#
network.host:0.0.0.0#バインドIP:、マシンへのアクセスを許可するデフォルトのリモートアクセス0.0.0.0後に変更することができる
cluster.initial_master_nodes:「ノード1」 、「ノード2」]#の既定マスタノードが提供されるカンマ区切りリストを注釈されています
その後、ルートディレクトリにES、およびログデータを作成します
mkdirデータ
は、mkdirログ
他の構成情報elasticsearch.yml:
プロパティ名 | 説明 |
---|---|
cluster.name | elasticsearchクラスタ名の設定、デフォルトはelasticsearchです。意味のある名前に変更を提案しました。 |
node.name | ノード名、ESはランダムにデフォルトの名前が割り当てられます、容易な管理のために意味のある名前を指定することをお勧めします |
path.conf | デフォルトの設定ESルートフォルダにマウントされ、構成ファイルの保存パス、tarやzipバッグを設定するには、rpmインストールされているデフォルトの/ etc / elasticsearch |
path.data | インデックスデータ記憶パスを設定し、デフォルトのルートフォルダESのデータファイルは、カンマで区切られたストレージ・パスが複数、設けられていてもよいです |
path.logs | ログファイルの保存パスを設定し、デフォルトではルートディレクトリのフォルダESでのログファイルであります |
path.plugins | ストレージ・パスは、ルートディレクトリのフォルダESでウィジェットのデフォルトのプラグインファイルを設定します |
bootstrap.memory_lock | メモリをロックすることができ、trueに設定しESスワップ用のメモリを回避するために使用 |
network.host | 外部ネットワークへのアクセスを許可するには、0.0.0.0に設定し、bind_hostとpublish_hostを設定します |
たhttp.port | 外部サービスのHTTPポートを設定し、デフォルトの9200。 |
transport.tcp.port | クラスタノード間の通信ポート |
discovery.zen.ping.timeout | ES自動検出時間ネットワーク遅延が大きく高く設定できるのであればノードの接続タイムアウト、3秒のデフォルトを設定します |
discovery.zen.minimum_master_nodes | プライマリノード値の最小数は、式のこの値:(master_eligible_nodes / 2)+ 1は、例えば三つ準拠マスターノードがあり、これは2に設定されています |
2.5:/etc/security/limits.confを増加設定ファイルを変更します。
我々は/etc/security/limits.confを
最終文書では、次の設定を追加します:
*ソフトNOFILEの65536 *ハードNOFILE 65536
/etc/sysctl.confファイルの後行vm.max_map_countを追加= 655360は、コマンドを実行し、追加しました:sysctlを-p
VIは/etc/sysctl.conf
にsysctl -p
2.6:スタート
esuserにES第1の反復利用者の下にあるすべてのディレクトリフォルダのすべての権限
chgrpコマンド-R esuser ./es
のchown -R esuser ./es
のchmod 777 ES
起動します。
最初のユーザーに切り替えesuserを開始します
彼のesuserの
./bin/elasticsearch
私たちは、バインディングの2つのポートを見ることができます:
-
9300:クラスタノード間の通信インタフェース
-
9200:クライアントアクセスインターフェイス
私たちは、ブラウザで訪問しました