elasticsearch 单节点实现

一、安装java环境,这么不说了,一般用源码安装,配置好环境变量

二、新建es用户和组,es不能用root启动

三、下载需要的稳定版es

四、解压安装es

unzip elasticsearch-5.5.2.zip
mv elasticsearch-5.5.2 /opt/app/
ln -s elasticsearch-5.5.2 es
chown -R es:es /opt/app/elasticsearch-5.5.2/

五、修改es配置文件

vim /opt/app/elasticsearch-5.5.2/config/elasticsearch.yml

cluster.name: es_znj
node.name: es_163
path.data: /data/es/
path.logs: /data/logs/es/
network.host: *.*.*.*
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
vim
/opt/app/elasticsearch-5.5.2/config/jvm.options

-Xms2g
-Xmx2g


六、修改系统参数

vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072

vim /etc/sysctl.conf
vm.max_map_count=262144
systemctl -p

七、创建目录

mkdir /data/es/
mkdir /data/logs/es/
chown es:es /data/es
chown es:es /data/logs/es

八、使用systemd管理进程

vim /etc/systemd/system/es.service
[Unit]
Description=elasticsearch5

[Service]
Type=simple
User=es
Group=es
EnvironmentFile=-/etc/default/es
ExecStart=/opt/app/es/bin/elasticsearch -Epath.conf=/opt/app/es/config
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false
Restart=always
LimitNOFILE=655350


[Install]
WantedBy=multi-user.target

vim /etc/default/es

ES_USER="es"
ES_GROUP="es"
JAVA_HOME="/opt/app/jdk"
LOG_DIR="/data/logs/es"
MAX_OPEN_FILES=655350
MAX_MAP_COUNT=262144
CONF_DIR="/opt/app/es/config"
DATA_DIR="/data/es"

九、安装ik插件

ik插件到这里下载对应es版本的,然后解压复制到es的插件目录:

unzip elasticsearch-analysis-ik-5.5.2.zip
mv elasticsearch /opt/src/
mv elasticsearch analysis-ik

十、安装head插件

1.下载head插件,下载地址

mv elasticsearch-head /opt/app/
ln -s elasticsearch-head es-head

2.修改配置

修改监听地址:
head/Gruntfile.js
修改连接地址:
目录:head/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
然后在head目录中,执行npm install 下载以来的包:
npm install
这里可以用淘宝的源
npm install -g cnpm --registry=https://registry.npm.taobao.org (用这个源很快,全部安装完成)
 然后npm install 这里会装上phantomjs 如果报错就安装下面的centos下:
安装yum install libXext libXrender fontconfig libfontconfig.so.1
然后再运行 npm install 直到成功装上phantomjs  没有Error
报错:
elasticsearch-head@0.0.0 license should be a valid SPDX license expression;
改license
vim package.json
"license": "Apache-2.0", license改为这个 因为要license在apache下面存在的
 
启动nodejs
grunt server
 
nginx代理限制访问权限
 
tips:
单节点出现Unassigned 错误,使用下面的命令,多节点就要注意排错了
 
curl -XPUT '10.0.10.21:9201/_settings' -d ' { "index" : { "number_of_replicas" : 0 } }'
 
 
curl -XPUT '20.0.0.125:9200/_settings' -d ' { "index" : { "number_of_replicas" : 0 } }'
上面的配置就表面没有复制,只有一个主分片,可以解决问题,下面的是针对过个节点调整
看备份数,比如只有一个节点,replicas 最多一个,两个节点,最多两个,调整节点数如下
curl -XPUT 'localhost:9200/<INDEX_NAME>/_settings' -d '{"number_of_replicas": 2}'
 
服务器放在线上的时候 要在外部需要做代理,同时将head和es都要代理出去:
 
原文地址:https://www.cnblogs.com/mikeluwen/p/7691468.html