zoukankan      html  css  js  c++  java
  • Centos7安装ES 和 Docker搭建ES

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws

    一.linux centos7.x安装ES 

    1.下载java

    1 sudo yum install java-1.8.0-openjdk.x86_64
    2 java -version 确认安装结果

    2.下载和安装ES

    1 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.2.rpm
    2 rpm -ivh elasticsearch-5.6.2.rpm 
    1 systemctl enable elasticsearch

    如果你机器内存小,就去/etc/elasticsearch 下 修改jvm.options 

    1 systemctl start elasticsearch   //启动
    2 systemctl status elasticsearch  //状态

    3.配置ES

    nano /etc/elasticsearch/elasticsearch.yml

    移除cluster.name和node.name前面的#井号来取消注释。另一个重要的配置是服务器角色master或slave。

    master负责集群健康和稳定。在大型生产部署环境中通常有很多节点,建议拥有多个专用Master。通常专用master不会存储数据和创建indexes. 因此一般不会因过载而导致集群健康受到威胁。

    slaves作为工作机,可以加载数据任务。即使slave节点过载,集群健康也不会受到严重的影响,其他节点可以承担额外的负载。

    决定服务器角色的配置乘坐node.master。如果你只有一个ES节点,应该保持其默认值为true, 即唯一的节点也是master. 如果希望将节点配置为slave, 取消这行注释,并且把值修改为false. 

    node.master: false 

    另一个重要的配置项是node.data , 它决定是否存储数据,在大多数情况下,此选项应保留默认值true.但是有两种情况你也许不希望节点存储数据,一个是结点作为专用master,另一个则是节点仅用于从其他节点获取数据并聚合结果的时候,这种情况也被称为 搜索负载平衡器,search load balancer.

    再说到如果你只有一个ES节点的话,则应该注释此配置,并保留其默认true值。否则,为了禁用数据存储,则取消该行注释,并将值修改为false.

    node.data: false

    另外两个重要配置项为index.number_of_shards和index.number_of_replicas 。

    前者决定index将会被分割成多少片(shards),第二个决定了在集群中被分发的副本(replicas)数。有更多的分片shards可以提高性能,有更多的replicas可以搜索更快。

    如果你仍然在单节点的ES上探索和测试ES。最好从一个shards开始,然后设置无replicas.因此应按照如下设置(请确保取消注释)

    index.number_of_shards: 1 
    index.number_of_replicas: 0

    最后一个你感兴趣的应该是修改path.data设置,它决定了数据的存储路径。默认设置为/var/lib/elasticsearch.在生产环境中,建议你使用专用分区和挂载点来存储数据。在最好的情况下,专用分区是一个单独的存储介质,以提供更好的性能和数据隔离。您可以通过取消注释并更改path.data的值,来指定不同的路径:

    path.data: /media/different_media

    在修改设置后不要忘了 restart es服务。下面使用几个基础命令测试一下:

     1 curl -X GET 'http://localhost:9200'
     2 
     3 curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '
     4 { "message": "Hello World!" }'   //存点数据
     5 
     6 curl -X GET 'http://localhost:9200/tutorial/helloworld/1'   //再获取下
     7 
     8 curl -X PUT 'localhost:9200/tutorial/helloworld/1?pretty' -d ' 
     9 { "message": "Hello People!" }'   更新一下
    10 
    11 curl -XGET 'http://localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } }'   //计算文档数量
    View Code

    二.Docker搭建ES

     虽然弄了两台服务器,但感觉还不够,Docker环境安装ES就比较方便了,正好也可以借着docker 开多个es镜像的容器来学习ES集群。更多的内容可以参考docker es文档 https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docker.html

     docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.2
    
    //不过我的服务器内存还是不够开启那么多es,所以在启动容器实例的时候 设置了512m.
    
    docker run -p 9301:9200 -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:5.6.2
  • 相关阅读:
    使用CustomValidate自定义验证控件
    C#中金额的大小写转换
    Andriod出错之Unable to build: the file dx.jar was not loaded from the SDK folder!
    VC 编写的打字练习
    机房工作笔记Ping只有单向通
    web服务协同学习笔记(1)
    Dll 学习3 将MDI子窗口封装在DLL中
    机房工作学习文件共享
    Andriod出错之Failed to find an AVD compatible with target 'Android 2.2'
    Andriod出错之wrapper was not properly loaded first
  • 原文地址:https://www.cnblogs.com/tdws/p/7667596.html
Copyright © 2011-2022 走看看