MENU

Centos7 安装配置 Elasticsearch

September 30, 2017 • Read: 134 • 无码

安装 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