ES源码部署
JAVA部署
将jdk-8u161-linux-x64.tar.gz拷入合适位置,或着自己去java官网下你想要的版本,要求是8uxxx序列的,版本需比161高
tar -xvf解压
将解压后的内容拷到合适位置,本例中使用/usr/lib/jdk
1 | cp -r jdk1.8.0_161/. /usr/lib/jdk |
写入环境变量
1 | sudo vim /etc/profile |
1 | #set java env |
使环境变量生效
1 | source /etc/profile |
配置软连接,部分软件可能会从/usr/bin目录下查找Java
1 | sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300 |
查看java版本号,判断部署是否成功
1 | java -version |
ES部署
下载源码包
1 | curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz |
直接curl下速度很慢,这里建议直接自己翻墙下载后拷进服务器
将源码包放置到合适位置,本例中放置于/home
1 | tar -xvf elasticsearch-6.6.2.tar.gz |
修改配置文件
初始的配置文件中全部是注释状态的,一定要进行设置
1 | cluster.name: my-application |
path.data和path.logs是es数据落盘的位置,可以自行调整,本例中使用上述路径
1 | vim jvm.options |
调整java虚拟机占用的内存大小,官方推荐设置为机器内存的一半,可以根据实际情况进行调整,比如服务压力不大就可以不用设置那么大,另外如果设置的过小的话,CPU的压力就会高起来
如果服务压力不大且机器配置允许的话,可以写1g,本例中写500m。如果服务压力较大,请根据实际使用时的CPU压力自行调整
此配置项应该原本就有,不需要加在后面,如果没看到就找找看是不是被注释状态
1 | -Xms500m |
修改文件标识符大小上限
1 | vim /etc/sysctl.conf |
在最后加上
1 | vm.max_map_count=655360 |
使配置生效
1 | sysctl -p |
一样是修改文件标识符
1 | vim /etc/security/limits.conf |
如果有的话就修改,没有的话就加上【这个应该是原本就有【默认状态下可能是注释着的,你加的这四行得是非注释状态
1 | root soft nofile 655370 |
这个配置文件修改后就会生效,但是在当前连接中不会生效,需要重新开一个连接,如果是xshell连服务器的,需要重开一个页面这样
如果是直接在服务器上操作,可以reboot重启服务器
1 | ulimit -n |
查看文件标识符的配置是否生效
创建elasticsearch用户
1 | adduser elasticsearch |
输入密码,自己记住
给予elasticsearch账号ES相关文件夹的权限,包括数据存储的文件夹,和elasticsearch程序所在文件夹
1 | chown -R elasticsearch /home/esdata/ |
切换到elasticsearch账号,启动ES
1 | su elasticsearch |
启动后会自动在后台运行,并在当前目录下生成一个名为pid的文件,里面记录着ES进程的pid
使用此指令查看ES是否正常启动
1 | curl localhost:9200 |
1 | { |
看到此信息,则表示ES服务已经正常启动
关闭
可以使用此指令直接读取pid文件中的进程pid将ES关闭
1 | pkill -F pid |
查看ES服务的运行状态
1 | ps aux | grep elasticsearch |
1 | root 10700 0.0 0.0 63048 460 pts/1 S Aug11 0:00 su elasticsearch |
如果显示这些,表示ES服务已经被关掉
如果没有被关掉可以手动kill -9杀掉
开机自启
使用root权限
在/etc/systemd/system目录下新建一个elasticsearch.service文件
1 | cd /etc/systemd/system |
写入以下内容,其中
User 根据你创建的给ES的账号自行调整
ExecStart 根据你的ES文件目录自行调整
1 | [Unit] |
开启开机自启动
1 | systemctl enable elasticsearch |
启动ES【现在可以用root账号启动了】
1 | systemctl start elasticsearch |
参考文档
CentOS 7 elasticsearch service 开机自启