一、数据存储:
- 结构化数据,一般会用二维的表结构来存储,如:mysql等关系型数据库
- 非结构化数据,即无法用关系型数据库存储的数据,如:日志、通讯记录、报表、视频、图片等,一般会把这种类型的数据存储在NoSQL中,如:MongoDB,redis,Hbase等,并且是以k-v形式保存的,可以通过key来查询
- 半结构化数据,将数据的结构和内容混在一起,比如:xml,html,这样的数据一般也会保存在MongoDB这样的nosql种,但是一个缺点是查询内容不太容易
- Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据
二、docker安装elasticsearch7.8和kibana7.8
1、先设置系统参数max_map_count
,否则 Elasticsearch 无法启动
/etc/sysctl.conf 文件添加vm.max_map_count=262144
执行更新命令:sysctl -p
2、创建共通网络,elasticsearch和kibana或者集群可以互相访问
docker network create es-net
3、拉取ES和kinana镜像
docker pull elasticsearch:7.8.0 docker pull elastic/kibana:7.8.0
4、创建映射容器的文件目录
# 用于挂载es插件目录和数据 创建01目录仅代表节点 mkdir -p -m 777 /mydata/es/01/plugins mkdir -p -m 777 /mydata/es/01/data mkdir -p -m 777 /mydata/es/01/logs
如果想创建多借点就继续映射02、03用于创建多个ES容器节点
6、启动ES
docker run --name=es-01 \ --restart=always \ --privileged \ --net es-net \ -p 9200:9200 \ -p 9300:9300 \ -v /mydata/es/01/plugins:/usr/share/elasticsearch/plugins \ -v /mydata/es/01/data:/usr/share/elasticsearch/data \ -v /mydata/es/01/logs:/usr/share/elasticsearch/logs \ -e node.name=es-01 \ -e node.master=true \ -e network.host=es-01 \ -e discovery.seed_hosts=es-01 \ -e cluster.initial_master_nodes=es-01 \ -e cluster.name=es-cluster \ -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \ -d elasticsearch:7.8.0
如果想多个节点集群,那么一开始所有的ES容器创建就要进行设置,有几个设置几个
-e discovery.seed_hosts=es-01,es-02,es-03,es-04 \
设置主节点
-e cluster.initial_master_nodes=es-01 \
别的属性按照自身设置即可(基本不用改,修改下对应的容器名字即可)
7、浏览器输入http://docker所在服务器的ip:9200 出现以下信息即为成功:
问题:浏览器输入地址后无法打开
第一步:进入ES容器内:
docker exec -it a02ec37af784 /bin/bash
第二步:修改elasticsearch.yml文件
vi config/elasticsearch.yml #添加下面两行文件,并修改host为本机IP地址 http.cors.enabled: true http.cors.allow-origin: "*" network.host: 172.16.137.131
其中:
http.cors.enabled: true:此步为允许elasticsearch跨域访问,默认是false。
http.cors.allow-origin: “*”:表示跨域访问允许的域名地址(*表示任意)。
第三步:重启docker
docker restart es-01
再次浏览器输入,显示成功
8、创建kibana容器
docker run --name kibana -p 5601:5601 --restart=always --network=es-net -e ELASTICSEARCH_HOSTS=http://es-01:9200 -d elastic/kibana:7.8.0
-e ELASTICSEARCH_HOSTS=http://es-01:9200 \ 设置es的访问路径
浏览器输入:http://docker所在服务器的ip:5601 出现以下信息即为成功