首先,准备一台全新的 centos7 服务器。

一. 安装上传下载工具

方法一:安装宝塔面板

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装完成后,输入

bt default

获取它分配的网址,账户,密码。

在浏览器中依次输入打开,点击文件导航栏,然后就可以通过 UI 界面与本地互传文件了

方法二:安装 lrzsz

这个方法的前提是你登录服务器的环境是 xshell,具体操作见 XShell-上传、下载文件(使用sz与rz命令)

二. 安装 java

yum install java -y

安装完成后,输入

java -version

查看 java 版本,确认安装成功

三. 新建用户

新建用户,是为了后面回避 root 用户执行 elasticsearch 时遭到 permission denied

useradd es  创建新用户 es
passwd es   为 es 设置密码
visudo

在打开的文件中作如下修改

## ALlow root to run any commands anywhere
root    ALL(ALL)        ALL
es      ALL(ALL)        ALL

四. 调整系统设置

vim /etc/security/limits.conf

在文件末尾添加(或修改)以下几行

* soft nofile 65536  !注意不是 65535
* hard nofile 131072
es soft memlock unlimited
es hard memlock unlimited
vim /etc/sysctl.conf

在文件末尾添加

vm.max_map_count = 655350

然后执行

sysctl -p

五. 下载部署 elasticsearch 和中文分词插件

这里以 es-6.3.2 和 ik-6.3.2 版本为例,其他类似

下载压缩包到 /opt/ 目录

cd /opt/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip

解压

tar zxvf elasticsearch-6.3.2.tar.gz
unzip elasticsearch-analysis-ik-6.3.2.zip -d ./ik

把插件移动到 elasticsearch 的 plugins 目录下,如果提示 Permission Denied 就用宝塔面板操作

mv ./ik ./elasticsearch-6.3.2/plugins/

然后配置 elasticsearch.yml 文件

vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml

改文件最后面这几行

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0  //监听访问地址为任意网段
#
# Set a custom port for HTTP:
#
http.port: 9200  //服务监听端口

六. 授权,开启 9200 端口

这步关键,后面启动 es 服务时发生 permission 错误,往往是 es 目录授权没做好。可以在宝塔面板检查授权是否完整。如果后面有相关 bug,可以回来在 root 用户下执行这个命令

chown -R es /opt/elasticsearch-6.3.2/

在服务器控制台配置安全组规则,添加入方向 9200

如果安装了宝塔面板,直接在面板的 安全 -> 端口 这里放行 9200 端口

七. 启动 elasticsearch

su es  切换到 es 用户
/opt/elasticsearch-6.3.2/bin/elasticsearch

等待回显里有一行打印出 xxxx started,说明启动成功

然后在浏览器访问 http://服务器的 ip 地址:9200

访问成功并看到默认的 json 对象说明 es 服务成功启动并且可以从外部访问

八. 将本地 es 数据导入服务器

确保本地 es 和分词插件跟服务器版本一致,版本不一致会发生什么,后果未知

ctrl + C 中断 es 服务

按照之前本地 es 创建数据结构的语句,在服务器创建一样的数据结构

打包本地 data 目录,上传到服务器, 解压缩

删除服务器 elasticsearch 目录下的 data 文件夹,替换为刚才上传的 data 目录

数据导入完成,正常启动 elasticsearch 就能使用。