在Docker中安裝Elasticsearch7.6.2的教程
安裝docker
你要安裝完成docker,不再說(shuō)明了。
安裝Elasticsearch
注意:使用版本為 7.6.2,你可以選擇其他版本
拉取鏡像
docker pull elasticsearch:7.6.2
啟動(dòng)容器
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
說(shuō)明:
1. -v /opt/hanlp:/opt/hanlp如果使用了hanlp的分詞,所以需要掛載詞庫(kù)
2. ES_JAVA_OPTS可以設(shè)置參數(shù)
3. 單節(jié)點(diǎn)啟動(dòng)
訪問(wèn)地址:http://172.18.63.211:9200
插件安裝
安裝ik 分詞器
下載對(duì)應(yīng)的版本:elasticsearch-analysis-ik
為什么安裝IK,輕量級(jí)。配置好詞庫(kù)也是可以用來(lái)中文分詞,HanLP重量級(jí),內(nèi)置算法較多,不適合單獨(dú)分詞使用。
# 離線安裝,下載對(duì)應(yīng)插件zip# https://github.com/medcl/elasticsearch-analysis-ikdocker cp /opt/elasticsearch-analysis-ik-7.6.2.zip elasticsearch:/optdocker exec -it elasticsearch bashcd plugins/mkdir analysis-ikunzip -d /usr/share/elasticsearch/plugins/analysis-ik/ /opt/elasticsearch-analysis-ik-7.6.2.zip exitdocker restart elasticsearch
自定義詞庫(kù)
自定義字典
遠(yuǎn)程詞庫(kù)
常用維護(hù)命令
# 查看所有索引信息GET /_cat/indices?pretty# 節(jié)點(diǎn)監(jiān)控GET /_cat/health?pretty# 安裝了哪些插件GET _cat/plugins
其他命令在用的時(shí)候再次整理,本文主要講安裝和部署。
監(jiān)控和開(kāi)發(fā)工具Kibana
Kibana 是為 Elasticsearch設(shè)計(jì)的開(kāi)源分析和可視化平臺(tái)。你可以使用 Kibana 來(lái)搜索,查看存儲(chǔ)在 Elasticsearch 索引中的數(shù)據(jù)并與之交互。你可以很容易實(shí)現(xiàn)高級(jí)的數(shù)據(jù)分析和可視化,以圖標(biāo)的形式展現(xiàn)出來(lái)。
我們的服務(wù)器IP是172.18.63.211
docker run --restart=always --link elasticsearch:elasticsearch --name kibana -p 5601:5601 -d kibana:7.6.2
進(jìn)入容器修改配置文件kibana.yml
docker exec -it kibana bashvi config/kibana.yml######################### 指定es的地址elasticsearch.hosts: ['http://172.18.63.211:9200']# 中文化i18n.locale: 'zh-CN'# 修改外網(wǎng)訪問(wèn) 可選server.host: '0.0.0.0'exit########################docker restart kibana
打開(kāi)地址:http://172.18.63.211:5601
測(cè)試分詞工具
POST _analyze{ 'text': '檢測(cè)甘藍(lán)型油菜抗磺酰脲類除草劑基因BnALS3R的引物與應(yīng)用', 'analyzer': 'hanlp'}
新增索引庫(kù)
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/configcd /usr/local/logstash/configtouch logstash.ymlvi log4j2.properties#####添加以下內(nèi)容logger.elasticsearchoutput.name = logstash.outputs.elasticsearchlogger.elasticsearchoutput.level = debug#####vi pipelines.yml####- pipeline.id: logstash-match path.config: '/usr/share/logstash/config/*.conf' pipeline.workers: 3####
同時(shí)需要將MySQL的驅(qū)動(dòng)包放入配置文件中。
再創(chuàng)建配置文件即可
這里給一個(gè)例子,是定時(shí)同步mysql數(shù)據(jù)到es中的。*
# logstash-mysql-es.confinput{ 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'] }}
啟動(dòng)
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
如果報(bào)錯(cuò)了
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ū)動(dòng)器即mysql-connector-java-xxxx-bin.jar拷貝到 logstash目錄logstash-corelibjars 下
如:
cd /usr/local/logstash/config
docker cp mysql-connector-java-8.0.17.jar logstash:/usr/share/logstash/logstash-core/lib/jars
檢測(cè)配置文件
bin/logstash -f /usr/local/logstash/config/mysql-es-patent.conf -t
完成,你可以進(jìn)行開(kāi)發(fā)了。
以上這篇在Docker中安裝Elasticsearch7.6.2的教程就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Spring如何使用xml創(chuàng)建bean對(duì)象3. Android Studio設(shè)置顏色拾色器工具Color Picker教程4. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)5. python實(shí)現(xiàn)在內(nèi)存中讀寫(xiě)str和二進(jìn)制數(shù)據(jù)代碼6. python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法7. Vue proxyTable配置多個(gè)接口地址,解決跨域的問(wèn)題8. Java程序的編碼規(guī)范(6)9. python 利用toapi庫(kù)自動(dòng)生成api10. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法
