Linux安装Elasticsearch以及ik中文分词器
1.0创建新的系统用户
ES不允许在root下启动服务,所以我们先来创建一个新的系统用户
创建用户:useradd guest
为guest用户设置密码:passwd guest
2.0安装及配置ES
2.1下载ES压缩包
官网下载Linux版本:
ES官方网站:https://www.elastic.co/cn/downloads/elasticsearch
2.2上传ES压缩包并解压
先使用root用户操作
创建文件夹:mkdir es
把压缩包上传到服务器的/home/es
文件夹下
解压:tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
文件夹重命名:mv elasticsearch-7.12.1 elasticsearch
2.3修改ES配置文件
进入config目录:cd config
打开文件:vi jvm.options
#增加下列配置并保存(默认是被注释的,认为内存足够大的可以不改):
-Xms1g
-Xmx1g
打开文件:vi elasticsearch.yml
#加入下列配置并保存:
cluster.name: my-application #默认是被注释的集群名
node.name: node-1 #默认是被注释的当前es节点名称
path.data: /home/es/data # 数据位置
path.logs: /home/es/logs # 日志位置
network.host: 0.0.0.0 #绑定的ip,默认只允许本机访问,修改为0.0.0.0后则可以远程访问
cluster.initial_master_nodes: ["node-1"] #默认是被注释的,设置master节点列表
进入es的根目录:cd /home/es/
创建logs和data目录:
mkdir data
mkdir logs
属性名 | 说明 |
---|---|
cluster.name | 配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。 |
node.name | 节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理 |
path.conf | 设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch |
path.data | 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开 |
path.logs | 设置日志文件的存储路径,默认是es根目录下的logs文件夹 |
path.plugins | 设置插件的存放路径,默认是es根目录下的plugins文件夹 |
bootstrap.memory_lock | 设置为true可以锁住ES使用的内存,避免内存进行swap |
network.host | 设置bind_host和publish_host,设置为0.0.0.0允许外网访问 |
http.port | 设置对外服务的http端口,默认为9200。 |
transport.tcp.port | 集群结点之间通信端口 |
discovery.zen.ping.timeout | 设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些 |
discovery.zen.minimum_master_nodes | 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2 |
2.4修改系统配置文件
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
直接加在最下面即可:
保存并退出
属性名 | 说明 |
---|---|
soft | 警告设定,可以超过当前设定值,但是超过后会有警告 |
hard | 严格设定,不允许超过当前设定的值 |
nofile | 一个进程最多能打开的的文件数 |
nproc | 一个用户最多能创建的进程数 |
vi /etc/sysctl.conf
#修改文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
vm.max_map_count=655360
同样加在最后一行保存并退出即可
使配置生效:sysctl -p
查看当前值:sysctl -a|grep vm.max_map_count
2.5分配权限
- 转变文件所属用户组:
chgrp -R guest ./es
- 转变文件拥有者:
chown -R guest ./es
- 指定权限:chmod 777 es
2.6启动
切换到guest用户:su guest
启动:./bin/elasticsearch
可以看到,启动时绑定了两个端口
- 9300:集群节点间通讯接口
- 9200:客户端访问接口
通过浏览器访问172.31.241.147:9200可以看到如下信息,代表启动成功了。
如果启动成功无法访问,先关闭防火墙再试一下
Centos7在防火墙中防火墙指令
- 查看防火墙状态命令:
systemctl status firewalld
- 开启防火墙命令:
systemctl start firewalld
- 关闭防火墙命令:
systemctl stop firewalld
- 查看防火墙开放的端口命令:
firewall-cmd --list-ports
- 向防火墙中添加8080端口:
firewall-cmd --permanent --zone=public --add-port=8080/tcp
- 重启防火墙,注意一定要重启防火墙,命令如下:
systemctl reload firewalld
3.0安装IK分词器
3.1下载
下载和es相同版本号的ik安装包
https://github.com/medcl/elasticsearch-analysis-ik/releases
如下图,直接下载第一个编译后的包,后面两个是源码包
3.2上传压缩包并解压
cd /home/es/elasticsearch/plugins #进入es安装目录下的plugins文件夹
mkdir ik #创建ik文件夹
- 将压缩包上传到
/home/es/elasticsearch/plugins/ik
目录下 - 解压:
unzip elasticsearch-analysis-ik-7.12.1.zip
- 未找到unzip命令用root用户先安装zip和unzip:
yum -y install zip
yum -y install unzip
解压完删除zip压缩包:rm -rf elasticsearch-analysis-ik-7.12.1.zip
4.0设置ES账号密码授权
4.1修改elasticsearch.yml
vi /home/es/elasticsearch/config/elasticsearch.yml
直接把下面配置拷贝到文件最后即可
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
4.2设置密码
需要先启动ES服务:
sh /home/es/elasticsearch/bin/elasticsearch -d
设置密码:
sh /home/es/elasticsearch/bin/elasticsearch-setup-passwords interactive