Docker に Elasticsearch 7.6.2 をインストールするチュートリアル

Docker に Elasticsearch 7.6.2 をインストールするチュートリアル

Dockerをインストールする

Docker をインストールする必要がありますが、それ以上の指示はありません。

Elasticsearchをインストールする

注: 使用されているバージョンは7.6.2ですが、他のバージョンを選択することもできます。

画像をプルする

docker pull elasticsearch:7.6.2

コンテナを起動する

docker run --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \

-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \

--name='elasticsearch' --cpuset-cpus="1" -m 2G -d elasticsearch:7.6.2

例:

1. -v /opt/hanlp:/opt/hanlp hanlp単語分割を使用する場合は、単語ライブラリをマウントする必要があります。

2. ES_JAVA_OPTSはパラメータを設定できます

3. 単一ノードの起動

アクセスアドレス: http://172.18.63.211:9200

プラグインのインストール

ikトークナイザーをインストールする

対応するバージョンをダウンロードしてください: elasticsearch-analysis-ik

IK をインストールする理由、軽量。設定された語彙は、中国語の単語分割にも使用できます。HanLP は重量級で、多くのアルゴリズムが組み込まれているため、単語単位の分割には適していません。

# オフラインインストール、対応するプラグインのzipをダウンロード
# https://github.com/medcl/elasticsearch-analysis-ik
docker cp /opt/elasticsearch-analysis-ik-7.6.2.zip elasticsearch:/opt
docker exec -it elasticsearch bash
CDプラグイン/
mkdir 分析 -ik
解凍 -d /usr/share/elasticsearch/plugins/analysis-ik/ /opt/elasticsearch-analysis-ik-7.6.2.zip 
出口
docker で elasticsearch を再起動する

カスタム語彙

カスタム辞書

リモート語彙

一般的なメンテナンスコマンド

# すべてのインデックス情報を表示する GET /_cat/indices?pretty
# ノード監視 GET /_cat/health?pretty
# どのプラグインがインストールされているか? GET _cat/plugins

その他のコマンドについては、使用時に説明します。この記事では、主にインストールと展開について説明します。

監視および開発ツール Kibana

Kibana は、Elasticsearch 向けに設計されたオープンソースの分析および視覚化プラットフォームです。 Kibana を使用して、Elasticsearch インデックスに保存されているデータを検索、表示、操作できます。高度なデータ分析と視覚化を簡単に実行し、アイコンの形で表示できます。

私たちのサーバーのIPは172.18.63.211です

Docker 実行 --restart=always --link elasticsearch:elasticsearch --name kibana -p 5601:5601 -d kibana:7.6.2

コンテナに入り、設定ファイルkibana.ymlを変更します。

docker exec -it kibana bash
vi config/kibana.yml
########################
# es elasticsearch.hosts のアドレスを指定します: ["http://172.18.63.211:9200"]
# 中国語 i18n.locale: "zh-CN"
# 外部ネットワークアクセス用のオプションの server.host を変更します: "0.0.0.0"
出口
########################
docker キバナを再起動

オープンアドレス: http://172.18.63.211:5601

テスト単語分割ツール

POST_analyze
{
 「テキスト」:「Brassica napus におけるスルホニルウレア系除草剤耐性遺伝子 BnALS3R を検出するためのプライマーとその応用」
 「アナライザー」: 「hanlp」
}

インデックスライブラリを追加しました

PUTの達成
{
 "設定": {
 「破片の数」: 1,
 「レプリカ数」: 1
 }
}

PUT 実績/_マッピング
{
 「プロパティ」: {
 「id」: {
  "タイプ": "テキスト"
 },
 "所有者": {
  "タイプ": "テキスト"
 },
 "タイトル": {
  "タイプ": "テキスト",
  「アナライザー」: 「hanlp」
 },
 "説明": {
  "タイプ": "テキスト",
  「アナライザー」: 「hanlp」
 },
 「更新時間」:{
  「タイプ」: 「日付」
 }
 }
}

データ同期 Logstash

ログの収集、解析、変換、データの同期などに使用されます。

インストール

docker pull ログスタッシュ:7.5.0

設定ファイルディレクトリ

mkdir -p /usr/local/logstash/config
/usr/local/logstash/config に移動します
logstash.yml をタッチする
vi log4j2.プロパティ
#####次のコンテンツを追加します。logger.elasticsearchoutput.name = logstash.outputs.elasticsearch
logger.elasticsearch出力レベル = デバッグ
#####
vi パイプライン.yml
####
- パイプラインID: logstash-match
 パス.config: "/usr/share/logstash/config/*.conf"
 パイプラインワーカー: 3
####

同時に、MySQL ドライバー パッケージを構成ファイルに配置する必要があります。

次に設定ファイルを作成します

以下は、MySQL データを es に定期的に同期する例です。 *

# ログスタッシュ-mysql-es.conf
入力{
 jdbc{
 jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
 jdbc_connection_string => "jdbc:mysql://172.18.63.211:3306/open_intelligence?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
 jdbc_user => "docker"
 jdbc_password => "docker@12345"
 jdbc_paging_enabled => 真
 jdbc_ページサイズ => 10000
 jdbc_fetch_size => 10000
 接続再試行回数 => 3
 接続再試行の待機時間 => 1
 jdbc_pool_timeout => 5
 列の値を使用する => true
 追跡列 => "更新時間"
 追跡列タイプ => "タイムスタンプ"
 record_last_run => 真
 last_run_metadata_path => "/usr/share/logstash/mysql/goods_achievement"
 ステートメント => "select * from goods_achievement where update_time > :sql_last_value"
 スケジュール => "* */30 * * * *"
 }
}

フィルター{
 変異 {
 分割 => { "feature1" => ";" }
 }
 変異 {
 分割 => { "feature2" => ";" }
 }
 変異 {
 分割 => { "feature3" => ";" }
 }
}

出力{
 エラスティックサーチ
 ドキュメントID => "%{id}"
 インデックス => "goods_achievement"
 ホスト => ["http://172.18.63.211:9200"]
 }
}

起動する

docker run -d -p 5044:5044 -p 9600:9600 -it \
-e TZ=アジア/上海 \
--name logstash --restart=常に\
-v /usr/local/logstash/config/:/usr/share/logstash/config/ \
-v /usr/local/logstash/mysql/:/usr/share/logstash/mysql/ \
--privileged=true \
ログスタッシュ:7.6.2

エラーが報告された場合

エラー: com.mysql.cj.jdbc.Driver がロードされていません。:jdbc_driver_library が設定されていません。クラスパスに適切なドライバー クライアント ライブラリを含めましたか?

ドライバー、mysql-connector-java-xxxx-bin.jarをlogstashディレクトリ\logstash-core\lib\jarsにコピーしてみてください。

のように:

/usr/local/logstash/config に移動します

docker cp mysql-connector-java-8.0.17.jar ログスタッシュ:/usr/share/logstash/logstash-core/lib/jars

検出プロファイル

bin/logstash -f /usr/local/logstash/config/mysql-es-patent.conf -t

完了です。開発を開始できます。

Docker に Elasticsearch 7.6.2 をインストールする方法に関する上記のチュートリアルは、私が皆さんに共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker に ElasticSearch と Kibana をインストールする際の問題と解決策
  • DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法
  • Docker に ElasticSearch をインストールする方法を 1 つの記事で解説
  • ElasticSearch と ElasticSearch-Head の Docker デプロイメントの実装
  • Dockerを使用してelasticsearchとheadプラグインをインストールする方法を説明します

<<:  Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

>>:  MySQL ロックブロッキングの詳細な分析

推薦する

JavaScript のコールバック関数の理解と使用

目次概要コールバックまたは高階関数とは何ですか?コールバック関数はどのように機能しますか?コールバッ...

JavaScript データ構造 双方向リンクリスト

単方向リンク リストは、先頭から末尾、または末尾から先頭への方向のみを走査できます。そのため、単方向...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

MySQL 5.5.27 インストール グラフィック チュートリアル

1. MYSQLのインストール1. ダウンロードしたMySQLインストールファイルmysql-5.5...

mysql5.7 以降で my.ini を設定するための詳細な手順

Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリ、my-...

JS関数の継承について学ぶ記事

目次1. はじめに: 2. プロトタイプチェーン継承: 3. コンストラクタ継承の借用(オブジェクト...

CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...

一般的な Linux の問題に対する解決策の概要

1. VMwareでCentos7を接続し、固定IPを設定する1) まず、仮想イメージ名を右クリック...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Docker コンテナにおける Patroni の簡単な分析

目次イメージの作成ファイル構造Dockerファイルエントリポイント関数ファイルを生成するイメージを構...

JS、CSS スタイルのリファレンスの記述

CS: ... 1. <link type="text/css" href...

Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

1 公式ウェブサイトから MySQL 5.6 バージョンの圧縮パッケージmysql-5.6.36-w...

CSS3 オーバーフロープロパティの説明

1. オーバーフローOverflow はオーバーフロー(コンテナ)です。コンテンツがコンテナを越える...

HTMLフォームのいくつかの送信方法の概要

最も一般的で、最もよく使用され、最も一般的な方法は、submit タイプを使用することです。コードを...

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free...