ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1024_day03_分布式搜索引擎ElasticSearch

2020-02-21 13:58:13  阅读:247  来源: 互联网

标签:1024 容器 day03 share tensquare ElasticSearch usr elasticsearch docker


1.ElasticSearch?

Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速 度去处理大规模数据。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分 布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发 的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用 于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2.ElasticSearch特点

(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公 司;也可以运行在单机上

(2)将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;

(3)开箱即用的,部署简单

(4)全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理

3.docker安装下ElasticSearch

(1)下载镜像(下自己需要的版本)

docker pull elasticsearch:5.6.8

 (2)创建容器

docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300
elasticsearch:5.6.8

(3)浏览器输入地址:

http://自己的ip地址:9200/ 即可看到如下信息

4. 存在的问题

1.9200端口开启,但java访问的9300端口未开启

需要修改配置文件

进入容器,不能使用vi等命令,因为vi是我么宿主机的命令。

进入容器(exit退出容器)

docker exec ‐it tensquare_elasticsearch /bin/bash

我们需要以文件挂载的 方式创建容器才行,这样我们就可以通过修改宿主机中的某个文件来实现对容器内配置 文件的修改

(1)拷贝配置文件到宿主机 首先退出容器,然后执行命令:

docker cp tensquare_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml

(2)停止和删除原来创建的容器

docker stop tensquare_elasticsearch
docker rm tensquare_elasticsearch

(3)重新执行创建容器命令

docker run ‐di ‐‐name=tensquare_elasticsearch ‐p 9200:9200 ‐p 9300:9300 ‐v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.8

(4)修改/usr/share/elasticsearch.yml 将 transport.host: 0.0.0.0 前的#去掉后保 存文件退出。其作用是允许任何ip地址访问elasticsearch .开发测试阶段可以这么做,生 产环境下指定具体的IP

(5)重启启动

docker restart tensquare_elasticsearch

(6)系统调优

修改/etc/security/limits.conf ,追加内容  nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制

* soft nofile 65536
* hard nofile 65536 

修改/etc/sysctl.conf,追加内容

vm.max_map_count=655360

(7)重启docker启动tensquare_elasticsearch,不断查看后台查看tensquare_elasticsearch是否启动。

systemctl restart docker

(8)通过java 9003访问测试

 2.内存过小

elasticsearch启动默认需要2g的内存,操作elasticsearch需要内存使用率在85%一下否则访问返回404

解决方法就是修改jvm空间分配

find /var/lib/docker/ -name jvm.options

修改配置

将

-Xms2g  
-Xmx2g
1
2
修改为

-Xms512m  
-Xmx512m 
1
2

重启elasticsearch

5.IK分词器安装

(1)将ik文件夹上传至宿主机

(2)在宿主机中将ik文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下

docker cp ik tensquare_elasticsearch:/usr/share/elasticsearch/plugins/

(3)重新启动,即可加载IK分词器

docker restart tensquare_elasticsearch

6.HEAD插件安装

(1)修改/usr/share/elasticsearch.yml ,添加允许跨域配置

http.cors.enabled: true
http.cors.allow‐origin: "*"

(2)重新启动elasticseach容器

(3)下载head镜像

docker pull mobz/elasticsearch‐head:5

(4)创建head容器

docker run ‐di ‐‐name=myhead ‐p 9100:9100 docker pull mobz/elasticsearch‐
head:5

 

 

 

 

 

 

 

 

 

 

 

标签:1024,容器,day03,share,tensquare,ElasticSearch,usr,elasticsearch,docker
来源: https://www.cnblogs.com/asndxj/p/12341081.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有