Elasticsearch简介
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力
- Elasticsearch的适用场景
- 国外
- 维基百科,类似百度百科,全文检索,高亮,搜索推荐
- The Guardian(国外新闻网站),用户行为日志(点击,浏览,收藏,评论)+社交网络数据,数据分析
- Stack Overflow(国外的程序异常讨论论坛)
- GitHub(开源代码管理)
- 电商网站,检索商品
- 日志数据分析,logstash采集日志,ES进行复杂的数据分析(ELK技术,elasticsearch+logstash+kibana)
- 商品价格监控网站
- BI系统,商业智能,Business Intelligence。
- 国内
- 站内搜索(电商,招聘,门户,等等)
- IT系统搜索(OA,CRM,ERP,等等)
- 数据分析(ES热门的一个使用场景)
- Elasticsearch的特点
- 可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司
- Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)
- 对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂
- 数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不不能提供的很多功能
- Elasticsearch的功能
- 分布式的搜索引擎和数据分析引擎
- 全文检索,结构化检索,数据分析
- 对海量数据进行近实时的处理
Elasticsearch的安装配置
- docker获取es的镜像
docker pull elasticsearch:7.12.1
- 在宿主机创建es相关文件目录
mkdir /docker/es
mkdir /docker/es/conf #配置文件
mkdir /docker/es/data #数据
mkdir /docker/es/plugins #扩展目录
- 创建配置文件
touch /docker/es/conf/elasticsearch.yml
vim /docker/es/conf/elasticsearch.yml
############### 写入以下配置 ##############
#集群名称
cluster.name: my-application
#节点名称
node.name: es-node-1
#数据和日志的存储目录
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
##设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
#端口
http.port: 9200
##设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前 是单机,放入一个节点即可
cluster.initial_master_nodes: ["es-node-1"]
- 构建容器
docker run -p 9200:9200 -d --name es -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data -v /docker/es/plugins:/usr/share/elasticsearch/plugins --privileged=true elasticsearch:7.12.1
- 构建异常处理
dockers logs es 或 docker logs -f es 查看构建容器日志
出现异常:max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]
- 解决:
修改配置sysctl.conf vi /etc/sysctl.conf
在尾行添加以下内容 vm.max_map_count=655300
执行命令 sysctl -p
重启es容器
- 浏览器访问已安装的elasticsearch 访问地址192.168.148.188:9200
kibana安装配置
- 拉取kibana镜像
docker pull kibana:7.12.1
- kibana的配置文件
mkidr /docker/kibana #创建宿主机目录
mkdir /docker/kibana/conf
touch /docker/kibana/conf/kibana.yml #创建配置文件
- kibana.yml文件内容
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://es地址:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
- 构建kibana的容器
docker run -p 5601:5601 -d --name kibana -v /docker/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.12.1
- kibana访问地址 192.168.148.188:5601