1 安裝ES7
1.1 設置jvm線程數(shù)限制
#修改sysctl.conf
vi /etc/sysctl.conf
#修改max_map_count調(diào)大,如果沒有這個設置,則新增一行
vm.max_map_count=262144
#改完保存后, 執(zhí)行下面命令讓sysctl.conf文件生效
sysctl -p
1.2 創(chuàng)建掛載目錄
- 為了防止容器刪掉數(shù)據(jù)丟失,需要進行數(shù)據(jù)文件掛載
#創(chuàng)建es配置目錄
mkdir /home/es/config -p
#創(chuàng)建es數(shù)據(jù)目錄
mkdir /home/es/data
#創(chuàng)建es插件目錄
mkdir /home/es/plugins
#授權目錄
chmod -R 777 /home/es
- /home/es/config目錄下創(chuàng)建配置文件 elasticsearch.yml?注意:配置冒號后面都有一個空格
- 單機配置文件內(nèi)容:
network.host: 0.0.0.0
network.publish_host: 192.168.101.157
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
# ======================== Elasticsearch Configuration =========================
# 配置es的集群名稱,es會自動發(fā)現(xiàn)在同一網(wǎng)段下的es,如果在同一網(wǎng)段下有多個集群,就可以用這個屬性來區(qū)分不同的集群
cluster.name: elasticsearch
# 節(jié)點名稱
node.name: node-1
# 指定該節(jié)點是否有資格被選舉成為node
node.master: true
# 指定初始主節(jié)點
cluster.initial_master_nodes: ["172.16.2.84:9300"]
# 指定該節(jié)點是否存儲索引數(shù)據(jù),默認為true
node.data: true
# 設置綁定的ip地址還有其他節(jié)點和該節(jié)點交換的ip地址,本機ip
network.host: 0.0.0.0
network.publish_host: 172.16.2.84
# 指定http端口
http.port: 9200
# 設置節(jié)點間交互的tcp端口,默認是9300
transport.tcp.port: 9300
# 設置集群中master節(jié)點的初始列表,可以通過這些節(jié)點來自動發(fā)現(xiàn)新加入集群的節(jié)點
discovery.zen.ping.unicast.hosts: ["172.16.2.84:9300","172.16.2.84:9300","172.16.2.85:9300"]
# 如果要使用head,那么需要解決跨域問題,使head插件可以訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
- 集群方式其他節(jié)點/home/es/config目錄下創(chuàng)建配置文件 elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
# 配置es的集群名稱,es會自動發(fā)現(xiàn)在同一網(wǎng)段下的es,如果在同一網(wǎng)段下有多個集群,就可以用這個屬性來區(qū)分不同的集群
cluster.name: elasticsearch
# 節(jié)點名稱
node.name: node-2
# 指定該節(jié)點是否有資格被選舉成為node
node.master: true
# 指定初始主節(jié)點
cluster.initial_master_nodes: ["172.16.2.84:9300"]
# 指定該節(jié)點是否存儲索引數(shù)據(jù),默認為true
node.data: true
# 設置綁定的ip地址還有其他節(jié)點和該節(jié)點交換的ip地址,本機ip
network.host: 0.0.0.0
network.publish_host: 172.16.2.85
# 指定http端口
http.port: 9200
# 設置節(jié)點間交互的tcp端口,默認是9300
transport.tcp.port: 9300
# 設置集群中master節(jié)點的初始列表,可以通過這些節(jié)點來自動發(fā)現(xiàn)新加入集群的節(jié)點
discovery.zen.ping.unicast.hosts: ["172.16.2.84:9300","172.16.2.85:9300","172.16.2.85:9300"]
# 如果要使用head,那么需要解決跨域問題,使head插件可以訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
1.3 創(chuàng)建ES容器
- 拉取鏡像
docker pull elasticsearch:7.16.3
- 啟動容器
- 單機啟動
docker run --restart=always -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -d --name es7.16.3 -p 9200:9200 -p 9300:9300 -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/plugins:/usr/share/elasticsearch/plugins -v /home/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.16.3
# 參數(shù):
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" 因為測試機器,把內(nèi)存設為512m
-e "discovery.type=single-node" 單機啟動
-d 后臺運行
--name 給啟動的容器起名稱
-p 9200:9200 -p 9300:9300 映射docker的端口,9200是http的端口,9300是內(nèi)部通訊的端口
-v 目錄掛載
elasticsearch:7.16.3 es鏡像名稱,用這個鏡像啟動為容器
- 可以安裝head插件?擴展市場
2 安裝kibana
2.1 拉取鏡像
docker pull kibana:7.16.3
2.2 創(chuàng)建并配置文件
mkdir -p /home/kibana/config
vi kibana.yml
- kibana.yml內(nèi)容
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://IP:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
monitoring.ui.container.elasticsearch.enabled: true
2.3 啟動kibana容器
docker run --restart=always --name kibana716 -v /home/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 -d kibana:7.16.3
3 使用kibana的Dev tools簡單操作
3.1 創(chuàng)建索引
建立搜索數(shù)據(jù)集的對象,即建立索引
PUT /hotol
{
"mappings":{
"properties":{
"title":{
"type":"text"
},
"city":{
"type":"keyword"
},
"price":{
"type":"double"
}
}
}
}
3.2 查詢索引
GET /_cat/indices
3.3 刪除指定索引
DELETE 索引名
3.4 寫入文檔
在索引中填充一些數(shù)據(jù),創(chuàng)建了一條ID為001的文檔文章來源:http://www.zghlxwxcb.cn/news/detail-402372.html
POST /hotol/_doc/001
{
"title":"大富豪酒店",
"city":"長春",
"price":680.0
}
3.5 根據(jù)_id搜索文檔
GET /hotol/_doc/001
3.6 根據(jù)一般字段搜索文檔
query子句可以按照需求填充查詢項。假設按照城市進行搜索,把酒店文檔搜索出來。因為只需要進行文本是否相等的判斷,所以需要用到term搜索文章來源地址http://www.zghlxwxcb.cn/news/detail-402372.html
GET /hotol/_search
{
"query": {
"term": {
"city": {
"value": "長春"
}
}
}
}
- 查詢結果
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : { // 命中文檔總數(shù)
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.2876821, //命中文檔最高得分
"hits" : [
{
"_index" : "hotol", //命中文檔所在索引
"_type" : "_doc",
"_id" : "001", //命中文檔ID
"_score" : 0.2876821, //命中文檔分值
"_source" : { //命中文檔內(nèi)容
"title" : "大富豪酒店",
"city" : "長春",
"price" : 680.0
}
}
]
}
}
3.7 對某個字段進行模糊匹配
GET /hotol/_search
{
"query": {
"match": {
"title": "富"
}
}
}
到了這里,關于第一章 docker安裝ElasticSearch7的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!