JAVA部署
将jdk-8u161-linux-x64.tar.gz拷入合适位置,或着自己去java官网下你想要的版本,要求是8uxxx序列的,版本需比161高
tar -xvf解压
将解压后的内容拷到合适位置,本例中使用/usr/lib/jdk
cp -r jdk1.8.0_161/. /usr/lib/jdk
复制代码
写入环境变量
sudo vim /etc/profile
复制代码
#set java env
export JAVA_HOME=/usr/lib/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
复制代码
使环境变量生效
source /etc/profile
复制代码
配置软连接,部分软件可能会从/usr/bin目录下查找Java
sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/bin/javac 300
复制代码
查看java版本号,判断部署是否成功
java -version
复制代码

ES部署
下载源码包
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
复制代码
直接curl下速度很慢,这里建议直接自己翻墙下载后拷进服务器
将源码包放置到合适位置,本例中放置于/home
tar -xvf elasticsearch-6.6.2.tar.gz
cd elasticsearch-6.6.2/config
vim elasticsearch.yml
复制代码
修改配置文件
初始的配置文件中全部是注释状态的,一定要进行设置
最下面两个带注释的项是需要添加的
cluster.name: my-application
path.data: /home/esdata/data
path.logs: /home/esdata/log
network.host: 0.0.0.0
http.port: 9200
# 是否支持跨域
http.cors.enabled: true
# *表示支持所有域名
http.cors.allow-origin: "*"
复制代码
path.data和path.logs是es数据落盘的位置,可以自行调整,本例中使用上述路径
vim config/jvm.options
复制代码
调整java虚拟机占用的内存大小,官方推荐设置为机器内存的一半,可以根据实际情况进行调整,比如服务压力不大就可以不用设置那么大,另外如果设置的过小的话,CPU的压力就会高起来
如果服务压力不大且机器配置允许的话,可以写1g,本例中写500m。如果服务压力较大,请根据实际使用时的CPU压力自行调整
此配置项应该原本就有,不需要加在后面,如果没看到就找找看是不是被注释状态
-Xms500m
-Xmx500m
复制代码
修改文件标识符大小上限
vim /etc/sysctl.conf
复制代码
在最后加上
vm.max_map_count=655360
复制代码
使配置生效
sysctl -p
复制代码
一样是修改文件标识符
vim /etc/security/limits.conf
复制代码
如果有的话就修改,没有的话就加上【这个应该是原本就有【默认状态下可能是注释着的,你加的这四行得是非注释状态
root soft nofile 655370
root hard nofile 655370
* soft nofile 655370
* hard nofile 655370
复制代码
这个配置文件修改后就会生效,但是在当前连接中不会生效,需要重新开一个连接,如果是xshell连服务器的,需要重开一个页面这样
如果是直接在服务器上操作,可以reboot重启服务器
ulimit -n
复制代码
查看文件标识符的配置是否生效
创建elasticsearch用户
adduser elasticsearch
passwd elasticsearch
复制代码
输入密码,自己记住
给予elasticsearch账号ES相关文件夹的权限,包括数据存储的文件夹,和elasticsearch程序所在文件夹
chown -R elasticsearch /home/esdata/
chown -R elasticsearch /home/elasticsearch-6.6.2
复制代码
切换到elasticsearch账号,启动ES
su elasticsearch
cd /home/elasticsearch-6.6.2
./bin/elasticsearch -d -p pid
复制代码
启动后会自动在后台运行,并在当前目录下生成一个名为pid的文件,里面记录着ES进程的pid
使用此指令查看ES是否正常启动
curl localhost:9200
复制代码
{
"name" : "-5ESl62",
"cluster_name" : "my-application",
"cluster_uuid" : "yxlA4dNJQPeei9KiUlVc9w",
"version" : {
"number" : "6.6.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "3bd3e59",
"build_date" : "2019-03-06T15:16:26.864148Z",
"build_snapshot" : false,
"lucene_version" : "7.6.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
复制代码
看到此信息,则表示ES服务已经正常启动
关闭
可以使用此指令直接读取pid文件中的进程pid将ES关闭
pkill -F pid
复制代码
查看ES服务的运行状态
ps aux | grep elasticsearch
复制代码
root 10700 0.0 0.0 63048 460 pts/1 S Aug11 0:00 su elasticsearch
root 11939 0.0 0.1 63048 2484 pts/4 S Aug11 0:00 su elasticsearch
elastic+ 15632 0.0 0.0 14428 996 pts/4 S+ 14:52 0:00 grep --color=auto elasticsearch
复制代码
如果显示这些,表示ES服务已经被关掉
如果没有被关掉可以手动kill -9杀掉
开机自启
使用root权限
在/etc/systemd/system目录下新建一个elasticsearch.service文件
cd /etc/systemd/system
vim elasticsearch.service
复制代码
写入以下内容,其中
User 根据你创建的给ES的账号自行调整
ExecStart 根据你的ES文件目录自行调整
[Unit]
Description=elasticsearch
[Service]
User=elasticsearch
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/home/elasticsearch-6.6.2/bin/elasticsearch
[Install]
WantedBy=multi-user.target
复制代码
开启开机自启动
systemctl enable elasticsearch
复制代码
启动ES【现在可以用root账号启动了】
systemctl start elasticsearch
复制代码
参考文档
CentOS 7 elasticsearch service 开机自启





















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)