分布式搜索引Elasticsearch 之Docker环境下安装(六)

继上篇文章:分布式搜索引擎Elasticsearch与MySQL数据同步(五)

 6.1 容器的创建与远程连接

1)下载镜像

docker pull elasticsearch:5.6.8
(2)创建容器
docker run -di --name=zhao88_el -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8
(3)浏览器输入地址:
http://192.168.63.131:9200/ 即可看到如下信息

 

(4)我们修改 项目 application.yml
server:
  port: 9007
spring:
  application:
    name: zhao588-search
  data:
    elasticsearch:
      cluster-nodes: 192.168.63.131:9300

(5) 修改容器配置,如果直接启动程序会报错,是因为elasticsearch5版本以后默认不开启远程连接,需要修改配置文件

6 )我们进入容器
docker exec -it zhao88_el /bin/bash
此时,我们看到 elasticsearch 所在的目录为 /usr/share/elasticsearch , 进入 config 看到了 配置文件
elasticsearch.yml
我们通过 vi 命令编辑此文件,尴尬的是容器并没有 vi 命令 ,咋办?我们需要以文件挂载的
方式创建容器才行,这样我们就可以通过修改宿主机中的某个文件来实现对容器内配置
文件的修改
(7)拷贝配置文件到宿主机
首先退出容器,然后执行命令:
docker cp zhao88_el:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml
(8)停止和删除原来创建的容器
docker stop zhao88_el
docker rm zhao88_el
(9)重新执行创建容器命令
docker run ‐di ‐‐name=zhao88_el -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch .yml elasticsearch:5.6.8
10 )修改 /usr/share/elasticsearch.yml transport.host: 0.0.0.0 前的 # 去掉后保 存文件退出。其作用是允许任何ip 地址访问 elasticsearch . 开发测试阶段可以这么做,生 产环境下指定具体的IP
11 )重启启动
docker restart zhao88_el
重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为 elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存 区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以 我们还需要系统调优。
12 )系统调优
我们一共需要修改两处 修改/etc/security/limits.conf ,追加内容
* soft nofile 65536 
* hard nofile 65536

打开limits.conf,在最后加上这两条数据,ESC,Shift+zz保存退出。 

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

进入 vi /etc/sysctl.conf 文件见数据,ESC,Shift+zz保存退出。

限制一个进程可以拥有的 VMA( 虚拟内存区域 ) 的数量
执行下面命令 修改内核参数马上生效
sysctl ‐p

6.2 IK分词器安装

1 )快捷键Ctrl+Alt+f 进入 Xftp , ik 文件夹上传至宿主机
(2)在宿主机中将 ik 文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下。
docker cp ik zhao88_el:/usr/share/elasticsearch/plugins/
(3)重新启动,即可加载 IK 分词器
docker restart zhao88_el

(4) IK分词器测试

IK提供了两个分词算法ik_smart 和 ik_max_word

其中 ik_smart 为最少切分,ik_max_word为最细粒度划分

我们分别来试一下

(1)最小切分:在浏览器地址栏输入地址

http://192.168.63.131:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员

输出的结果为:

 

(2)最细切分:在浏览器地址栏输入地址

http://192.168.63.131:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员

输出的结果为:

 

6.3  HEAD插件安装

1 )修改 /usr/share/elasticsearch.yml , 添加允许跨域配置
http.cors.enabled: true
http.cors.allow‐origin: "*"

 操作如下,添加完后 ,ESC,Shift+zz保存退出。 

(2)重新启动 elasticseach 容器
docker  start  zhao88_el
(3)下载 head 镜像
docker pull mobz/elasticsearch‐head:5
(4)创建 head 容器
docker run -di --name=zhao88_head -p 9100:9100 docker pull mobz/elasticsearch‐ head:5

(5) 测试 浏览器输入 :http://192.168.63.131:9100/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值