elasticsearch 7.8.1下载
方式一
linux执行以下命令
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
方式二
在windows上登录网站下载linux版本,在上传至服务器(相对耗时)
登录网站
https://www.elastic.co/cn/downloads/elasticsearch
点击历史版本
知道对应版本,开始下载
linux jdk环境安装
1、执行下载命令
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
2、解压
tar -zxvf jdk-8u201-linux-x64.tar.gz
3、改名
mv jdk1.8.0_201 jdk1.8
4、移动至 /usr/local/下
mv jdk1.8 /usr/local/
5、新增java环境变量,编辑 /etc/profile
vim /etc/profile
6、最下方加入
export JAVA_HOME=/usr/local/jdk1.8
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
7、突出保存,立即生效
source /etc/profile
8、查看java环境
java -version
结果如下
安装
- linux执行解压命令
tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz
解压后生成 elasticsearch-7.8.1 目录 - 移动到 /usr/local/下
mv elasticsearch-7.8.1 /usr/local/ - 备份 /usr/local/elasticsearch-7.8.1/config/elasticsearch.yml
cp elasticsearch.yml elasticsearch.yml.bak - 编辑elasticsearch.yml,新增配置
vi elasticsearch.ymlcluster.name: escluster node.name: es1 node.master: true node.data: true path.data: /usr/local/elasticsearch-7.8.1/data path.logs: /usr/local/elasticsearch-7.8.1/logs bootstrap.memory_lock: false bootstrap.system_call_filter: false http.port: 9200 network.host: 0.0.0.0 discovery.zen.minimum_master_nodes: 2 discovery.zen.ping_timeout: 3s discovery.zen.ping.unicast.hosts: ["IP1:9300","IP2:9300","IP3:9300"] http.cors.enabled: true http.cors.allow-origin: "*"
退出保存
配置文件重点参数解析
- cluster.name
集群名字,三台集群的集群名字都必须一致 - node.name
节点名字,三台ES节点字都必须不一样 - discovery.zen.minimum_master_nodes:2
表示集群最少的master数,如果集群的最少master数据少于指定的数,将无法启动,官方推荐node master数设置为集群数/2+1,我这里三台ES服务器,配置最少需要两台master,整个集群才可正常运行, - node.master
该节点是否有资格选举为master,如果上面设了两个mater_node 2,也就是最少两个master节点,则集群中必须有两台es服务器的配置为node.master: true的配置,配置了2个节点的话,如果主服务器宕机,整个集群会不可用,所以三台服务器,需要配置3个node.masdter为true,这样三个master,宕了一个主节点的话,他又会选举新的master,还有两个节点可以用,只要配了node master为true的ES服务器数正在运行的数量不少于master_node的配置数,则整个集群继续可用,我这里则配置三台es node.master都为true,也就是三个master,master服务器主要管理集群状态,负责元数据处理,比如索引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm内存可分配较低一点 - node.data
存储索引数据,三台都设为true即可 - bootstrap.memory_lock: true
锁住物理内存,不使用swap内存,有swap内存的可以开启此项 - discovery.zen.ping_timeout: 3000s
自动发现拼其他节点超时时间 - discovery.zen.ping.unicast.hosts:
[“ip1:9300”,“iP2:9300”,“ip3:9300”]
设置集群的初始节点列表,集群互通端口为9300
更多es信息解读参考链接
https://www.cnblogs.com/sunsky303/p/9438737.html
启动
elasticsearch不允许root用户启动,需要新增普通用户es
1、新增用户
groupadd es
useradd es -g es -p es
2、目录更改权限
chown -R es:es /usr/local/elasticsearch-7.8.1 (是这个用户拥有es安装目录的权限)
3、切换 es用户
su - es
4、启动es
./bin/elasticsearch -d
(-d为在后台启动,不加-d时可以看到启动过程,出现started时启动完成)
./elasticsearch -d -Xmx2g -Xms2g #后台启动,启动时指定内存大小(2G)
./elasticsearch -d -Des.logger.level=DEBUG #可以在日志中打印出更加详细的信息。
5、验证es启动情况
jps
浏览器验证
ip1:9200 访问
Head插件安装
-
下载插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip -
yum源方式安装zip解压缩命令
yum install -y zip unzip -
解压
unzip master.zip -
移动到 /usr/local/
mv elasticsearch-head-master /usr/local/ -
下载node.js
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz -
解压node
tar -zxvf node-v4.4.7-linux-x64.tar.gz -
移动 /usr/local/
mv node-v4.4.7-linux-x64 /usr/local/ -
编辑环境变量
vi /etc/profileexport NODE_HOME=/usr/local/node-v4.4.7-linux-x64 export PATH=$NODE_HOME/bin:$PATH
-
立即生效
source /etc/profile -
验证node环境
node -v
-
安装grunt
##进入到插件目录下面
cd /opt/elasticsearch-6.5.4/es-head/elasticsearch-head-master
##下载安装grunt
npm install -g grunt-cli
##检测是否安装成功,如果执行命令后出现版本号就表明成功
grunt -version
-
修改插件源码配置
vi /usr/local/elasticsearch-head-master/Gruntfile.js
新增
port: 9100,
hostname: ‘*’,
-
修改head的连接地址:
vi /usr/local/elasticsearch-head-master/_site/app.jsthis.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; 把localhost修改成你es的服务器地址,如: this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://ip1:9200";
-
安装
npm install
grunt server
nohup grunt server & 后台运行
nohup npm run start & 窗口退出后仍可后台运行 -
浏览器中访问ip:9100查看es的结构
修改系统参数
vi /etc/sysctl.conf
fs.file-max=655360
vm.max_map_count=655360
sysctl -p
vim /etc/security/limits.conf
## 65535修改为65536
* soft nofile 65536
* hard nofile 65536
## 文件末尾追加
* soft nproc 4096
* hard nproc 4096