当前位置: 首页 > article >正文

docker安装单机es和kibana以及基础练习

docker安装单机es和kibana

1、拉取镜像

#镜像
sudo docker pull elasticsearch:7.4.2
#kibana
sudo docker pull kibana:7.4.2

2、启动容器

sudo docker run -di --name=es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.4.2sudo docker run -it -d -e ELASTICSEARCH_URL=http://10.108.113.211:9200 --name kibana -p 5601:5601 --privileged=true  kibana:7.4.2

3、遇到问题

[Docker搭建kibana访问出现Kibana server is not ready yet]的问题

我们在访问 Kibana 的时候,有可能会出先 Kibana server is not ready yet 的问题 ,原因是因为 ELASTICSEARCH_URL 配置的应该是容器的 ip,而不是本地ip。

3.1查看es的网络ipAdress

sudo docker inspect es容器id

3.2 然后进入 Kibana 容器内部,修改 kibana.yml 中的ip

$ docker exec -it kibana容器id /bin/bash
$ cd config
$ vi kibana.ymlserver.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

3.3 只需要将上面的 "http://elasticsearch:9200" 中的 elasticsearch 替换成上一步的es容器内部ip就可以了。

3.4 修改完成之后退出容器,重新启动即可

es  
参考自尚硅谷
1场景1  对明细搜索2  elk  elasticsearch logstash kibana 3  olap  (聚合效率有限)   但是 快速可视化 kibana  2   特点 天然分片 天然集群 shard 6.x 默认是一个index 5片, 1片不要超过30G   10G以下 建议分一个片 片数太多的 会明细影响性能天然索引 倒排索引 内容(分词) --> 主键lucene  es   发动机与车    solr term index (快速定位分词)  --> term dictionary (分词字典) --> posting list (分词对应的数据的id)3  cluster  node  shard  index document field  type4 dsl 插删改   es 本身不做物理修改   通过版本的提升  标记新版本  提升性能 目前不能查历史put   幂等post  非幂等查询全文匹配    (text)match   保存数据时要分词 组织成倒排索引  ,搜索的关键词要分词 拿分词依次去匹配倒排索引命中的数据 根据相关度评分 排序展示等值匹配  不分词(keyword)term   短语匹配 phrase_match 类似 like '%xxx%'模糊匹配fuzzy   字母容错混合查询 既有过滤 又有分词匹配post_filter  先分词匹配 再过滤bool         一边匹配一边过滤 范围过滤range 分页 from  size排序 sort高亮highlight聚合 aggs  分组 terms  聚合 sum min max avg  count(白送)	stats(聚合全家桶)	

es基础练习

GET _search
{"query": {"match_all": {}}
}
GET _cat/health
#查询各个节点状态
GET _cat/nodes?v
#查询各个索引状态
GET /_cat/indices?v
#查询某个索引的分片情况
GET /_cat/shards/users?v#Restful风格 get put post delete  
## put 幂等性操作
## post 非幂等性操作
##PUT和DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有什么不同,DELETE也是一样。POST操作不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建了若干的资源。
##POST理解为新增,PUT理解为更新。因此,在curl -XPUT 中需要指定id。而POST的话,ES会自动创建id
##PUT会将新的json值完全替换掉旧的;而POST方式只会更新相同字段的值,其他数据不会改变,新提交的字段若不存在则增加
PUT users/_doc/1
{"user" : "Jack2","post_date" : "2019-05-15T14:12:12","message" : "trying out Elasticsearch"
}PUT /movie_index/movie/1
{ "id":1,"name":"operation red sea","doubanScore":8.5,"actorList":[  
{"id":1,"name":"zhang yi"},
{"id":2,"name":"hai qing"},
{"id":3,"name":"zhang han yu"}
]
}
PUT /movie_index/movie/2
{"id":2,"name":"operation meigong river","doubanScore":8.0,"actorList":[  
{"id":3,"name":"zhang han yu"}
]
}PUT /movie_index/movie/3
{"id":3,"name":"incident red sea","doubanScore":5.0,"actorList":[  
{"id":4,"name":"zhang chen"}
]
}
#update 整体替换,和新增没有区别  要求:必须包括全部字段
PUT /movie_index/movie/3
{"id":"3","name":"incident red sea","doubanScore":"2.0","actorList":[  
{"id":"1","name":"zhang chen"}
]
}
#修改—某个字段
POST movie_index/movie/3/_update
{ "doc": {"doubanScore":"7.0"} 
}#### ES 是不删除也不修改任何数据的,而是增加版本号
DELETE /movie_index
DELETE /movie_index/movie/3##################  3.查询 #################搜索type全部数据
GET movie_index/_search#查询,根据id查询
GET movie_index/movie/3######  3.1按条件查询 ######
#3.1.1全部查询
GET movie_index/_search
{"query": {"match_all": {}}}
#3.1.2按分词查询
GET movie_index/_search
{"query": {"match": {"name": "operation red sea"}}}#倒排索引
operation
red
seaoperation 1,2
red 1,3
sea 1,3
meigong 2
river 2
incident 31,2  1,3  1,3#3.1.3按分词子属性查询#match 分词匹配,必须用text字段
## text 类型事专用的分词字段,keyword不是分词字段
GET movie_index/_search
{"query": {"match": {"actorList.name": "zhang han yu"}}}
#term 值等匹配,必须用keyword字段
GET movie_index/_search
{"query": {"term": {"actorList.name.keyword": "zhang han yu"}}
}
}#3.1.4短语匹配,类似于like ‘%xxxx%’
GET movie_index/movie/_search
{"query":{"match_phrase": {"name":"operation red"}}
}
#3.1.5模糊匹配(容错匹配)
#校正匹配分词,当一个单词都无法准确匹配,es通过一种算法对非常接近的单词也给与一定的评分,能够查询出来,但是消耗更多的性能。
GET movie_index/movie/_search
{"query":{"fuzzy": {"name":"operator"}}
}###### 混和 1 先匹配 再过滤 GET movie_index/movie/_search
{"query":{"match": {"name":"red"}},"post_filter":{"term": {"actorList.id": 3}}
}GET movie_index/movie/_search
{"query":{"match":{"name":"red"}},"post_filter":{"term":{"actorList.name.keyword":"zhang han yu"}}}###### 混和 2 同时匹配+过滤
GET movie_index/movie/_search
{"query":{"bool":{"must":[{"match":{"name":"red"}  },{"match":{"id":1}}],"filter":{"term":{"actorList.name.keyword":"zhang han yu"}}}}}###过滤--按范围过滤
GET movie_index/movie/_search
{"query":{"range":{"doubanScore":{"gte":6,"lte":9}}}}
### 排序
#"order":"desc"
#"order":"asc"
GET movie_index/movie/_search
{"query":{"range":{"doubanScore":{"gte":6,"lte":9}}},"sort":{"doubanScore":{"order":"asc"}}}#分页查询
#from 从第几行开始,size每页的大小
GET movie_index/movie/_search
{"query": { "match_all": {} },"from": 1,"size": 1
}#指定查询的字段
GET movie_index/movie/_search
{"query": { "match_all": {} },"_source": ["name", "doubanScore"]
}####  聚合
#keyword 是某个字符串字段,专门储存不分词格式的副本 ,在某些场景中只允许只用不分词的格式,比如过滤filter 比如 聚合aggs, 所以字段要加上.keyword的后缀
#取出每个演员共参演了多少部电影
GET movie_index/movie/_search
{ "aggs": {"groupby_actor": {"terms": {"field": "actorList.name.keyword"  }}}
}#每个演员参演电影的平均分是多少,并按评分排序
GET movie_index/movie/_search
{ "aggs": {"groupby_actor_id": {"terms": {"field": "actorList.name.keyword" ,"order": {"avg_score": "desc"}},"aggs": {"avg_score":{"avg": {"field": "doubanScore" }}}} }
}#"analyzer": "ik_smart"
GET _analyze
{"analyzer": "ik_max_word", "text":"红海行动"
}
#查看mapping
#但是如果没有设定mapping系统会自动,根据一条数据的格式来推断出应该的数据格式
#默认只有text会进行分词,keyword是不会分词的字符串。
#mapping除了自动定义,还可以手动定义,但是只能对新加的、没有数据的字段进行定义。一旦有了数据就无法再做修改了GET movie_index/_mapping/#基于中文分词搭建索引  
PUT movie_chn
{"mappings": {"properties": {"id":{"type": "long"},"name":{"type": "text", "analyzer": "ik_smart"},"doubanScore":{"type": "double"},"actorList":{"properties": {"id":{"type":"long"},"name":{"type":"keyword"}}}}}}GET movie_chn/_mapping/
GET movie_chn/_search
DELETE movie_chn  
PUT movie_chn/_doc/1
{ "id":1,"name":"红海行动","doubanScore":8.5,"actorList":[  {"id":1,"name":"张译"},{"id":2,"name":"海清"},{"id":3,"name":"张涵予"}]
}
PUT /movie_chn/_doc/2
{"id":2,"name":"湄公河行动","doubanScore":8.0,"actorList":[  
{"id":3,"name":"张涵予"}
]
}PUT movie_chn/_doc/3
{"id":3,"name":"红海事件","doubanScore":5.0,"actorList":[  
{"id":4,"name":"张晨"}
]
}GET /movie_chn/_doc/_search
{"query":{"match":{"name":"行动"}}
}#########  索引 ############
#索引别名就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引名的API来使用。别名 带给我们极大的灵活性,允许我们做下面这些:
#1.	给多个索引分组 (例如, last_three_months)
#2.	给索引的一个子集创建视图
#3.	在运行的集群中可以无缝的从一个索引切换到另一个索引## 建表时直接声明
PUT movie_chn_2020
{  "aliases": {"movie_chn_2020-query": {}}, "mappings": {"properties": {"id":{"type": "long"},"name":{"type": "text", "analyzer": "ik_smart"},"doubanScore":{"type": "double"},"actorList":{"properties": {"id":{"type":"long"},"name":{"type":"keyword"}}}}}
}## 为已存在的索引增加别名
POST  _aliases
{"actions": [{ "add":    { "index": "movie_chn_2020", "alias": "movie_chn_2020-test" }}]
}GET movie_chn_2020-test/_search## 删除某个索引的别名
POST  _aliases
{"actions": [{ "remove":    { "index": "movie_chn_2020", "alias": "movie_chn_2020-query" }}]
}
## 查看别名列表
GET  _cat/aliases?vPOST /_aliases
{"actions": [{ "remove": { "index": "movie_chn_2020", "alias": "movie_chn_2020-query" }},{ "add":    { "index": "movie_chn", "alias": "movie_chn_2020-query" }}]
}GET movie_chn_2020-query/_search######### 索引模板 #########
#索引模板就是利用es 在没有索引的时候使用模板来建立索引
#注意 如果es中的shard特别多 有可能创建索引会变慢,如果延迟不能接受。建议别用模板而用定时脚本建立
#下面的索引模板的意思
#index_patterns,只要索引符合movie_test为前缀的索引,都是以该模板为标准构建
#"aliases,索引的别名,一个是movie_test-query,一个是"索引名+query"
#索引的作用
#movie_test-query 用来聚合统计,只要以movie_test开头的索引,都会被movie_test-query所查询到
PUT _template/template_movie2020
{"index_patterns": ["movie_test*"],                  "settings": {                                               "number_of_shards": 1},"aliases" : { "{index}-query": {},"movie_test-query":{}},"mappings": {                                          "properties": {"id": {"type": "keyword"},"movie_name": {"type": "text","analyzer": "ik_smart"}}}
}
#测试
POST movie_test_202001/_doc
{"id":"333","name":"zhang3"
}
POST movie_test_202002/_doc
{"id":"222","name":"li4"
}GET movie_test-query/_search#查看系统中已有的模板清单
GET  _cat/templates  
#查看某个模板详情
GET  _template/template_movie2020
http://www.lryc.cn/news/2415896.html

相关文章:

  • 国内有哪些好的刷题网站?
  • 电脑店PE+CDlinux+360系统急救盘+Ubuntu+fedora+backtrack 下 (by 星空武哥)
  • 服务器数据恢复—RAID阵列热备盘上线失败导致Raid崩溃,文件系统不可用的数据恢复案例...
  • Linux常用命令_(文件权限)
  • 鼠标录制器哪个好用,5款热门鼠标连点器软件分享(收藏)
  • WebService——SOAP详解
  • 6个免费的音乐下载网站,一键下载MP3歌曲
  • Gallery3d 学习笔记(9)
  • CMM(软件能力成熟度模型)
  • DELPHI得到文件路径的方法
  • php 转义反绡线,PHP汉字转拼音
  • 世上最全的map集合体系的使用方法---喜欢请收藏
  • rgba8888什么含义
  • 通信概念GSM和TETRA术语
  • 七大免费杀毒软件
  • 怎么注册tk域名_全面剖析tk免费域名注册
  • 攻防世界 Misc高手进阶区 4分题 Hidden-Message
  • 少年三国志礼包兑换码大全
  • PL/SQL Initialization error Could not initialize 问题
  • 驱动开发之 键盘过滤驱动_声明驱动的开发
  • cruzer php sandisk 闪迪u盘量产工具_sandisk量产工具(闪迪U盘量产工具)
  • [C#]TextBox的使用
  • 解析DXF图形文件格式
  • In .net Class and Struct
  • 数据挖掘在人口统计分析中的应用
  • 关于手动脱壳的分析及方法总结
  • Nginx系列(一):基本概念及安装
  • SpringBoot中Jersey的配置与相关注解
  • 点击a链接导航
  • B2B2C虚拟物流铺货软件研发(APP+H5)