zoukankan      html  css  js  c++  java
  • Elasticsearch Docker环境下安装

    (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://192.168.184.134:9200/ 即可看到如下信息

    (4)我们修改demo的application.yml
     

     spring:   data:     elasticsearch:       cluster‐nodes: 192.168.184.135:9300


    (5)运行测试程序,发现会报如下错误
    NoNodeAvailableException[None of the configured nodes are available:  [{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}{192.168.184.135} {192.168.184.135:9300}]  ]    at  org.elasticsearch.client.transport.TransportClientNodesService.ensureNodes AreAvailable(TransportClientNodesService.java:347)    at  org.elasticsearch.client.transport.TransportClientNodesService.execute(Tra nsportClientNodesService.java:245)    at  org.elasticsearch.client.transport.TransportProxyClient.execute(TransportP roxyClient.java:59)
    这是因为elasticsearch从5版本以后默认不开启远程连接,需要修改配置文件

    (6)我们进入容器

    docker exec ‐it tensquare_elasticsearch  /bin/bash

    此时,我们看到elasticsearch所在的目录为/usr/share/elasticsearch ,进入config看到了 配置文件

    elasticsearch.yml
    我们通过vi命令编辑此文件,尴尬的是容器并没有vi命令 ,咋办?我们需要以文件挂载的 方式创建容器才行,这样我们就可以通过修改宿主机中的某个文件来实现对容器内配置 文件的修改
    (7)拷贝配置文件到宿主机
    首先退出容器,然后执行命令:
    docker cp  tensquare_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml  /usr/share/elasticsearch.yml
    (8)停止和删除原来创建的容器
    docker stop tensquare_elasticsearch   docker rm  tensquare_elasticsearch
    (9)重新执行创建容器命令
    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
    (10)修改/usr/share/elasticsearch.yml 将 transport.host: 0.0.0.0 前的#去掉后保 存文件退出。其作用是允许任何ip地址访问elasticsearch .开发测试阶段可以这么做,生 产环境下指定具体的IP
    (11)重启启动
    docker restart tensquare_elasticsearch

    重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为 elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存 区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以 我们还需要系统调优。
    (12)系统调优
    我们一共需要修改两处
    修改/etc/security/limits.conf ,追加内容
    * soft nofile 65536  * hard nofile 65536
    nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制
    修改/etc/sysctl.conf,追加内容
    vm.max_map_count=655360
    限制一个进程可以拥有的VMA(虚拟内存区域)的数量
    执行下面命令 修改内核参数马上生效
    sysctl ‐p
    (13)重新启动虚拟机,再次启动容器,发现已经可以启动并远程访问

    IK分词器安装
    (1)快捷键alt+p进入sftp , 将ik文件夹上传至宿主机
    sftp> put ‐r d:setupik
    (2)在宿主机中将ik文件夹拷贝到容器内 /usr/share/elasticsearch/plugins 目录下。
    docker cp ik tensquare_elasticsearch:/usr/share/elasticsearch/plugins/
    (3)重新启动,即可加载IK分词器

     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/elasticsearchhead:5

  • 相关阅读:
    winform只允许一个应用程序运行
    IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法
    C#ToString() 格式化数值
    SQLServer2008只能编辑前面200行数据
    Validform验证时可以为空,否则按照指定格式验证
    js操作cookie
    div z-index无论设置多高都不起作用
    Tableau 练习题
    Tableau可视化操作
    Tableau 基础
  • 原文地址:https://www.cnblogs.com/skyislimit/p/10790136.html
Copyright © 2011-2022 走看看