MENU

Centos7 安装配置 Elasticsearch

September 30, 2017 • Read: 70 • 无码

安装 Elasticsearch

确定是否已经安装JDK8(官方推荐使用JDK8,低版本建议升级)。

java version ""1.8.0_144""
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

/etc/yum.repos.d/目录创建elasticsearch.repo文件;

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

执行sudo yum install elasticsearch,一路按y。

执行systemctl enable elasticsearch设置开机启动。

执行systemctl start elasticsearch启动es。

执行curl http://localhost:9200验证是否启动成功。

{
  ""name"" : ""DduW5um"",
  ""cluster_name"" : ""elasticsearch"",
  ""cluster_uuid"" : ""GF0ljhIaSRGWz8QpMC1Ccw"",
  ""version"" : {
    ""number"" : ""5.6.2"",
    ""build_hash"" : ""57e20f3"",
    ""build_date"" : ""2017-09-23T13:16:45.703Z"",
    ""build_snapshot"" : false,
    ""lucene_version"" : ""6.6.1""
  },
  ""tagline"" : ""You Know, for Search""
}

配置 Elasticsearch

默认情况下,Elasticsearch从/etc/elasticsearch/elasticsearch.yml文件加载其配置。

还具有一个系统配置文件(/etc/sysconfig/elasticsearch),允许设置以下参数:

参数说明
ES_USER运行用户,默认为elasticsearch
ES_GROUP运行组,默认为elasticsearch
JAVA_HOME设置要使用的自定义Java路径
MAX_OPEN_FILES最大打开文件数,默认为65536
MAX_LOCKED_MEMORY最大锁定内存大小。如果在elasticsearch.yml中使用bootstrap.memory_lock选项,请设置为unlimited
MAX_MAP_COUNT进程可能具有的最大内存映射区域数。如果使用mmapfs作为索引存储类型,请确保将其设置为高值。有关更多信息,请查看关于max_map_count的linux内核文档。这是在启动elasticsearch之前通过sysctl设置的,默认为262144
LOG_DIR日志目录,默认/var/log/elasticsearch
DATA_DIR数据目录,默认/var/lib/elasticsearch
CONF_DIR配置文件目录 (需要包含的elasticsearch.yml和log4j2.properties文件),默认/etc/elasticsearch
ES_JAVA_OPTS你想要使用的额外JVM系统配置
RESTART_ON_UPGRADE配置软件包升级后重启,默认为false。这意味着在安装软件包后需要手动启动es实例。这样做的原因是确保集群中的升级不会导致连续的分片重新分配,从而导致高网络流量并减少集群的响应时间

编辑/etc/elasticsearch/jvm.options文件设置JVM参数;elasticsearch默认的heap是2G,因为这台4G内存的ECS跑着一堆软件,将heap调小到512m。

-Xms512m
-Xmx512m

注意,不论设置成多大,min和max JVM heap应该设置成一样的值。

安装IK分词器

Elasticsearch默认的分词器,对中文分词支持不好,会把每个汉字分开。

elasticsearch-analysis-ik的项目地址:https://github.com/medcl/elasticsearch-analysis-ik;可以使用插件安装的方式(插件版本必须与es版本一致):

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.1/elasticsearch-analysis-ik-5.6.1.zip

不过,本次安装的es版本是5.6.2和ik插件版本不一样,插件方式安装报错版本不一致。

看了下插件5.6.0和5.6.1的区别只有pom.xml中<elasticsearch.version>5.6.1</elasticsearch.version>这一段;那就clone项目,修改成5.6.2;使用maven打包(mvn clean package);将target/releases目录中的elasticsearch-analysis-ik-5.6.2.zip解压并拷贝到/usr/share/elasticsearch/plugins/ik目录;注意是拷贝解压文件夹内的文件,不是解压后的文件夹。

重启服务systemctl restart elasticsearch

测试分词器(创建index、mapping等见ik插件README):

curl -XPOST http://localhost:9200/index/fulltext/_search\?\&pretty\=true  -d'
{
    ""query"" : { ""match"" : { ""content"" : ""中国"" }},
    ""highlight"" : {
        ""pre_tags"" : [""<tag1>"", ""<tag2>""],
        ""post_tags"" : [""</tag1>"", ""</tag2>""],
        ""fields"" : {
            ""content"" : {}
        }
    }
}
'

查询结果:

{
  ""took"" : 99,
  ""timed_out"" : false,
  ""_shards"" : {
    ""total"" : 5,
    ""successful"" : 5,
    ""skipped"" : 0,
    ""failed"" : 0
  },
  ""hits"" : {
    ""total"" : 2,
    ""max_score"" : 0.6099695,
    ""hits"" : [
      {
        ""_index"" : ""index"",
        ""_type"" : ""fulltext"",
        ""_id"" : ""4"",
        ""_score"" : 0.6099695,
        ""_source"" : {
          ""content"" : ""中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首""
        },
        ""highlight"" : {
          ""content"" : [
            ""<tag1>中国</tag1>驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首""
          ]
        }
      },
      {
        ""_index"" : ""index"",
        ""_type"" : ""fulltext"",
        ""_id"" : ""3"",
        ""_score"" : 0.27179778,
        ""_source"" : {
          ""content"" : ""中韩渔警冲突调查:韩警平均每天扣1艘中国渔船""
        },
        ""highlight"" : {
          ""content"" : [
            ""中韩渔警冲突调查:韩警平均每天扣1艘<tag1>中国</tag1>渔船""
          ]
        }
      }
    ]
  }
Archives QR Code
QR Code for this page
Tipping QR Code