在Docker中安裝Elasticsearch7.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可以設置參數(shù)
3. 單節(jié)點啟動
訪問地址:http://172.18.63.211:9200

插件安裝
安裝ik 分詞器
下載對應的版本:elasticsearch-analysis-ik
為什么安裝IK,輕量級。配置好詞庫也是可以用來中文分詞,HanLP重量級,內(nèi)置算法較多,不適合單獨分詞使用。
# 離線安裝,下載對應插件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 plugins/ mkdir analysis-ik unzip -d /usr/share/elasticsearch/plugins/analysis-ik/ /opt/elasticsearch-analysis-ik-7.6.2.zip exit docker restart elasticsearch

自定義詞庫
自定義字典
遠程詞庫
常用維護命令
# 查看所有索引信息 GET /_cat/indices?pretty # 節(jié)點監(jiān)控 GET /_cat/health?pretty # 安裝了哪些插件 GET _cat/plugins
其他命令在用的時候再次整理,本文主要講安裝和部署。
監(jiān)控和開發(fā)工具Kibana
Kibana 是為 Elasticsearch設計的開源分析和可視化平臺。你可以使用 Kibana 來搜索,查看存儲在 Elasticsearch 索引中的數(shù)據(jù)并與之交互。你可以很容易實現(xiàn)高級的數(shù)據(jù)分析和可視化,以圖標的形式展現(xiàn)出來。
我們的服務器IP是172.18.63.211
docker run --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" # 修改外網(wǎng)訪問 可選 server.host: "0.0.0.0" exit ######################## docker restart kibana
打開地址:http://172.18.63.211:5601
測試分詞工具
POST _analyze
{
"text": "檢測甘藍型油菜抗磺酰脲類除草劑基因BnALS3R的引物與應用",
"analyzer": "hanlp"
}
新增索引庫
PUT achievement
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
}
}
PUT achievement/_mapping
{
"properties": {
"id": {
"type": "text"
},
"owner": {
"type": "text"
},
"title": {
"type": "text",
"analyzer": "hanlp"
},
"description": {
"type": "text",
"analyzer": "hanlp"
},
"update_time":{
"type": "date"
}
}
}
數(shù)據(jù)同步Logstash
用于收集、解析和轉(zhuǎn)換日志,同步數(shù)據(jù)等。
安裝
docker pull logstash:7.5.0
配置文件目錄
mkdir -p /usr/local/logstash/config cd /usr/local/logstash/config touch logstash.yml vi log4j2.properties #####添加以下內(nèi)容 logger.elasticsearchoutput.name = logstash.outputs.elasticsearch logger.elasticsearchoutput.level = debug ##### vi pipelines.yml #### - pipeline.id: logstash-match path.config: "/usr/share/logstash/config/*.conf" pipeline.workers: 3 ####
同時需要將MySQL的驅(qū)動包放入配置文件中。

再創(chuàng)建配置文件即可
這里給一個例子,是定時同步mysql數(shù)據(jù)到es中的。*
# logstash-mysql-es.conf
input{
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 => true
jdbc_page_size => 10000
jdbc_fetch_size => 10000
connection_retry_attempts => 3
connection_retry_attempts_wait_time => 1
jdbc_pool_timeout => 5
use_column_value => true
tracking_column => "update_time"
tracking_column_type => "timestamp"
record_last_run => true
last_run_metadata_path => "/usr/share/logstash/mysql/goods_achievement"
statement => "select * from goods_achievement where update_time > :sql_last_value"
schedule => "* */30 * * * *"
}
}
filter{
mutate {
split => { "feature1" => ";" }
}
mutate {
split => { "feature2" => ";" }
}
mutate {
split => { "feature3" => ";" }
}
}
output {
elasticsearch {
document_id => "%{id}"
index => "goods_achievement"
hosts => ["http://172.18.63.211:9200"]
}
}
啟動
docker run -d -p 5044:5044 -p 9600:9600 -it \ -e TZ=Asia/Shanghai \ --name logstash --restart=always \ -v /usr/local/logstash/config/:/usr/share/logstash/config/ \ -v /usr/local/logstash/mysql/:/usr/share/logstash/mysql/ \ --privileged=true \ logstash:7.6.2
如果報錯了
Error: com.mysql.cj.jdbc.Driver not loaded. :jdbc_driver_library is not set, are you sure you included the proper driver client libraries in your classpath?
可以嘗試將驅(qū)動器即mysql-connector-java-xxxx-bin.jar拷貝到 logstash目錄\logstash-core\lib\jars 下
如:
cd /usr/local/logstash/config
docker cp mysql-connector-java-8.0.17.jar logstash:/usr/share/logstash/logstash-core/lib/jars
檢測配置文件
bin/logstash -f /usr/local/logstash/config/mysql-es-patent.conf -t
完成,你可以進行開發(fā)了。
以上這篇在Docker中安裝Elasticsearch7.6.2的教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Dockerfile實現(xiàn)數(shù)據(jù)卷的掛載問題(推薦)
Dockerfile就是一個可以用來構建鏡像的文件,可以理解為一個腳本文件,可以通過這個腳本文件自定義生成一個我們想要的鏡像,鏡像都是一層一層的,里面的每一條命令就是一層,本文給大家介紹使用Dockerfile實現(xiàn)數(shù)據(jù)卷的掛載,感興趣的朋友一起看看吧2022-03-03
Docker跨主機網(wǎng)絡(manual)的實現(xiàn)
這篇文章主要介紹了Docker跨主機網(wǎng)絡(manual)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理
Docker中的/var/lib/docker/overlay2目錄是用于存儲Docker容器的數(shù)據(jù)層和鏡像層的,使用Docker一段時間后這個目錄可能會變得非常大,這篇文章主要給大家介紹了關于docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理的相關資料,需要的朋友可以參考下2024-04-04
記 -bash: docker-compose: command not&nbs
這篇文章主要介紹了記 -bash: docker-compose: command not found 的問題解決方法,本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01

