安装Elasticsearchhe和IK分词器
1. 安装前准备
安装Elasticsearch之前,需要安装Java8或Java8以上的Java环境,linux安装jdk百度一下。
2. 下载Elasticsearchhe
创建安装目录
mkdir -p /usr/local/elasticsearch
如果主机联网,可以选择在线下载(版本根据自己需要,演示用的是7.3.1)。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-linux-x86_64.tar.gz
如果主机不联网,手动下载安装包。
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
右侧View past releases可以选择以往版本,选择版本后下载:
手动下载完成后把安装包用ftp上传到创建好的目录下,联网下载的wget 命令直接在创建好的目录下执行,或者拷贝到创建好的目录下。
cp elasticsearch-7.3.1-linux-x86_64.tar.gz /usr/local/elasticsearch
解压安装包
cd /usr/local/elasticsearch
tar -zxvf elasticsearch-7.3.1-linux-x86_64.tar.gz
3. 安装Elasticsearchhe
出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑。官方建议创建一个单独的用户用来运行ElasticSearch。(不能用root来启动)
创建Elasticsearch用户组
groupadd esgroup
创建es用户
useradd esuser
passwd esuser
注意:为esuser用户设置密码时:1、密码不得包含用户名2、密码长度大于8位。密码建议设置完成后先记录到记事本上以免忘记设置得密码。
把用户esuser添加到esgroup用户组
usermod -G esgroup esuser
设置sudo权限(用root用户)
[root@localhost toutou]# visudo
#在root ALL=(ALL) ALL 一行下面
#添加estest用户 如下:
esuser ALL=(ALL) ALL
#添加成功保存后切换到es用户操作
[root@localhost toutou]# su esuser
[es@localhost root]$
验证esuser的sudo权限
sudo -l -U esuser
把elasticsearch-7.3.1拷贝到esuser用户下,更改elasticsearch-7.3.1文件夹以及内部文件的所属用户为esuser, 用户组组为esgroup
cp /usr/local/elasticsearch/elasticsearch-7.3.1 /home/esuser
sudo chown -R esuser:esgroup /home/esuser/elasticsearch-7.3.1
4. 配置Elasticsearchhe
设置elasticsearch.yml
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
cluster.initial_master_nodes: ["node-1"]
属性 cluster.name 如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
属性 node.name 节点名可以忽略
属性 node.master 指定该节点是否有资格被选举成为node,默认是true
属性 index.number_of_shard 设置默认索引分片个数,默认为5片
属性 index.number_of_replica 设置默认索引副本个数,默认为1个副本
属性 path.conf 设置配置文件的存储路径,默认是es根目录下的config文件夹。
属性 path.data 设置索引数据的存储路径,默认是es根目录下的data文件夹
属性 path.work 设置临时文件的存储路径,默认是es根目录下的work文件夹
属性 path.logs 设置日志文件的存储路径,默认是es根目录下的logs文件夹
属性 path.repo 快照存储路径
属性 gateway.recover_after_nodes 设置集群中N个节点启动时进行数据恢复,默认为1
属性 network.host 映射出来的ip
属性 transport.tcp.port 设置节点间交互的tcp端口,默认是9300
属性 http.port: 9200 设置对外服务的http端口,默认为9200
属性 index.number_of_replicas 索引的复制副本数量
属性 indices.fielddata.cache.size fielddata缓存限制,默认无限制
属性 indices.breaker.fielddata.limit fielddata级别限制,默认为堆的60%
属性 indices.breaker.request.limit request级别请求限制,默认为堆的40%
属性 indices.breaker.total.limit 保证上面两者组合起来的限制,默认堆的70%
属性 discovery.zen.ping.multicast.enabled 是否广播模式,默认true,广播模式即同一个网段的ES服务只要集群名[cluster.name]一致,则自动集群
属性 discovery.zen.ping.unicast.hosts 手动指定,哪个几个可以ping通的es服务做集群,注意该设置应该设置在master节点上,data节点无效
修改主机(用root用户执行)
vi /etc/sysctl.conf
#添加
vm.max_map_count=262144
保存退出后,使用sysctl -p 刷新生效
vi /etc/security/limits.conf
#添加
* hard nofile 65536
* soft nofile 65536
* soft nproc 2048
* hard nproc 65536
5. 启动Elasticsearchhe(用esuser用户)
#窗口启动, 窗口关闭进程结束
./elasticsearch
#后台启动
./elasticsearch -d
浏览器输入主机ip:9200访问
安装IK分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.3.1
ik 取词器的版本要和Elasticsearch保持一致。如果需要那个版本v后面就是版本号
下载到之后解压得到下图内容
上传到elasticsearch-7.3.1到plugins文件夹得ik文件夹下,如果ik文件夹不存在手动创建。
mkdir ik
chmod -R 775 ik/
上传成功后如下图
安装完插件后,重启ElasticSearch,看到控制台有 loaded plugin [analysis-ik]
即安装成功:如下图
访问ip:9200/_cat/plugins 查看ElasticSearch所安装的插件