https://www.jianshu.com/p/ce976b481623
ElasticSearch 安装 (单机单节点/单机多节点)
ElasticSearch 简介
ElasticSearch(ES) 现在已经随着技术发展越来越火爆了。它基于Lucence搜索引擎,实现RestFul风格,开箱即用。广泛用于在网站上做站内搜索。
下载
这个变焦简单了,会上网的人应该都会。
安装
ES 下载解压后,配置文件主要在config目录下,
包含文件:elasticsearch.yml,jvm.options,log4j2.properties。
这三个文件分别对应ES配置,JVM配置,ES日志配置。我们这里只讨论elasticsearch.yml的配置,其他的暂时不论。
单机单节点
单机单节点最爽了,为啥?因为简单啊。进入到解压后文件夹的bin目录,然后window平台双击elasticsearch.bat,*nix平台使用sh elasticsearch,之后再在控制台中看到如下,有个started:
2017-12-01-15-42-20
因为我们什么配置都没改,所以ES使用默认配置,http端口为9200,TCP端口为9300。
这个时候我们访问下接口:curl -XGET localhost:9200,或者浏览器打开localhsot:9200,就会看到下面的输出:
2017-12-01-15-48-31
单机很简单,真的很简单。
单机多节点(伪集群)
部署完单机,下面就是集群了。集群,什么是集群了?一个服务在多台机器上部署,并且这些服务之间彼此之间内部高度紧密协作拥有某种联系,我们可以当作是这个服务的集群。在某种含义上,可以认为是一台服务器。
ES 伪集群:es服务在同一台机器上根据不同的端口启动服务,构成在本机上的一个集群模式。
2017-12-03-14-57-03
以此为基础,我们来看看怎么配置。
主要用到的配置属性有这些,
2017-12-01-16-09-24
我的本地ip地址为:192.168.11.21,
master 的 elasticsearch.yml:
cluster.name: notice-application
node.name: master
node.master: true
network.host: 192.168.11.21
# network.bind_host: 192.168.11.21
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
slave1 的 elasticsearch.yml:
cluster.name: notice-application
node.name: slave1
# network.publish_host: 192.168.11.21
# network.bind_host: 192.168.11.21
network.host: 192.168.11.21
http.port: 9210
transport.tcp.port: 9310
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
slave2 的 elasticsearch.yml:
cluster.name: notice-application
node.name: slave2
# network.publish_host: 192.168.11.21
# network.bind_host: 192.168.11.21
network.host: 192.168.11.21
http.port: 9220
transport.tcp.port: 9320
discovery.zen.ping.unicast.hosts: ["192.168.11.21:9300","192.168.11.21:9310","192.168.11.21:9320"]
上面的配置,如果要你要体验下可以拷贝到你自己的ES中,将IP改成你的本地ip就可以看到了。
推荐一个图形化工具:elasticsearh-head,这货尽然还推出了Chrome 插件。简直完美。
安装之后你就可以head插件看到集群配置了,下面是我的集群启动,电脑配置不太够,只启动了两台服务。
2017-12-01-16-23-25
现在说正题,我们说下配置:
cluster.name: 它指代的是集群的名字,一个集群的名字必须唯一,节点根据集群名字加入到集群中
node.name: 节点名称,可以是自定义的方便分辨的名字,记住master也是一个节点。eg:master,slave
node.master: true/false 是否是集群中的主节点。
network.host: 设置network.bind_host 和 publish_host的默认值,这里设置成127.0.0.1和主机ip是有区别的,你可以使用curl -XGET “http://network.host/9200"看到结果
network.bind_host: 绑定服务器ip地址
network.publish_host: 绑定发布的地址
http.port: HttpRest 的接口,这个接口可以让你在浏览器访问
transport.tcp.port: 给Java或者其它节点的服务端口,代码里面用这个。
discovery.zen.ping.unicast.hosts: 这里是一组IP,我一般是使用ip:port这种书写方式,还有很多种方式,详情:zen的介绍
安装中文分词插件
ElasticSearch 默认的分词器对于中文的分词不是特别友好,英文的词使用空格隔开的,但是中文就不一样了。默认的分词器会将中文的字一个一个拆分,比如“中国”,默认的分词器就是“中”,“国”,然后去匹配。所以我们需要安装一个中文分词器,这里我选择的是IK插件,它提供了一些友好的中文分词器,并且支持热更新分词热更新,注意根据自己的ES版本来选择IK的版本。github的readme上有两种安装方式,一种是用命令行模式:./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.0.0/elasticsearch-analysis-ik-6.0.0.zip。
另一种就是解压缩包安装方式,去https://github.com/medcl/elasticsearch-analysis-ik/releases下载合适的release版本,然后解压到ES根目录下的plugins目录。
IK 提供了两种分词器:ik_max_word和ik_smart_word。
原文地址:http://chenzhijun.me/2017/12/01/elasticsearch-install/
欢迎一起交流。
作者:陈小白_
链接:https://www.jianshu.com/p/ce976b481623
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。