ElasticSearch安装
版本
JDK:jdk1.8.0_201
ElasticSearch:7.0
linux:CentOS7.0
ElasticSearch安装
- 选择linux版本下载ElasticSearch:https://www.elastic.co/cn/downloads/elasticsearch
-
Linux
根目录下创建data
目录:mkdir data
- 将下载包(
elasticsearch-7.0.0-linux-x86_64.tar.gz
) 上传到Linux服务器data
目录下 - 解压安装包:
tar -zxvf /data/elasticsearch-7.0.0-linux-x86_64.tar.gz
ElasticSearch配置
- 新建文件夹:
mkdir -p /data/es/data/
、mkdir -p /data/es/logs/
- 修改配置文件
vim /data/elasticsearch-7.0.0/config/elasticsearch.yml
cluster.name: node
# 节点名称(唯一)
node.name: node-001
# 数据存储位置
path.data: /data/es/data/
# 日志存储位置
path.logs: /data/es/logs/
# 设置对外服务的http端口
http.port: 9200
# 设置节点间交互的tcp端口
transport.tcp.port: 9300
# 监听访问地址为任意网段
network.host: 0.0.0.0
- 入
elasticsearch
目录cd /data/elasticsearch-7.0.0/bin/
- 启动
ElasticSearch
:./elasticsearch -d
- 报错:
ElasticSearch5.0版本后,安全级别的提升,使得ElasticSearch在后续的版本中不允许使用root用户启动,因此我们需要创建另外独立账户专供es使用
[2019-04-16T18:00:29,437][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-001] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.0.0.jar:7.0.0]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.0.0.jar:7.0.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:102) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:169) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) ~[elasticsearch-7.0.0.jar:7.0.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.0.0.jar:7.0.0]
... 6 more
- 创建独立用户与组
[[email protected] bin]# groupadd elasticsearch
[[email protected] bin]# useradd -g elasticsearch elasticsearch
[[email protected] bin]# passwd elasticsearch
[[email protected] bin]# vim /etc/sudoers
- 修改配置文件:
vim /etc/sudoers
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
elasticsearch ALL=(ALL) ALL
- 更改
elasticsearch-7.0.0
文件夹所属用户组chown -R elasticsearch.elasticsearch /data/elasticsearch-7.0.0
[[email protected] ~]# chown -R elasticsearch.elasticsearch /data/elasticsearch-7.0.0
[[email protected] ~]# chown -R elasticsearch.elasticsearch /data/es/
[[email protected] ~]# ls -l /data/elasticsearch-7.0.0
总用量 480
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 4月 6 06:57 bin
drwxr-xr-x. 2 elasticsearch elasticsearch 178 4月 16 18:00 config
drwxr-xr-x. 8 elasticsearch elasticsearch 96 4月 6 06:57 jdk
drwxr-xr-x. 3 elasticsearch elasticsearch 4096 4月 6 06:57 lib
-rw-r--r--. 1 elasticsearch elasticsearch 13675 4月 6 06:52 LICENSE.txt
drwxr-xr-x. 2 elasticsearch elasticsearch 30 4月 16 18:00 logs
drwxr-xr-x. 29 elasticsearch elasticsearch 4096 4月 6 06:58 modules
-rw-r--r--. 1 elasticsearch elasticsearch 447478 4月 6 06:57 NOTICE.txt
drwxr-xr-x. 2 elasticsearch elasticsearch 6 4月 6 06:57 plugins
-rw-r--r--. 1 elasticsearch elasticsearch 8478 4月 6 06:52 README.textile
- 切换用户,并启动
[[email protected] ~]# su elasticsearch
[[email protected] root]$ cd /data/elasticsearch-7.0.0/bin/
[[email protected] bin]$ ./elasticsearch -d
- 启动继续报错
[2019-04-16T19:27:31,703][ERROR][o.e.b.Bootstrap ] [node-001] node validation exception
[3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
max file descriptors [4096] for elasticsearch process is too low 每个进程最大同时打开文件数太小
max virtual memory areas vm.max_map_count [65530] is too low 问题同上,最大线程个数太低解决以上问题:
见系统参数配置
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改配置文件 vim /data/elasticsearch-7.0.0/config/elasticsearch.yml
添加cluster.initial_master_nodes: ["node-001"]
- 再次启动,成功验证
[[email protected] ~]# curl http://10.197.236.102:9200/
{
"name" : "node-001",
"cluster_name" : "node",
"cluster_uuid" : "8AMuAMJYSKaeeyktgzjStA",
"version" : {
"number" : "7.0.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "b7e28a7",
"build_date" : "2019-04-05T22:55:32.697037Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.7.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
- 外网访问(注意防火墙)
系统参数配置
- 修改limits.conf配置文件
解决
max file descriptors [4096] for elasticsearch process is too low 每个进程最大同时打开文件数太小注意
limits.conf 中 elasticsearch为用户名
[[email protected] data]# vim /etc/security/limits.conf
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
- 修改sysctl.conf配置文件
解决
max virtual memory areas vm.max_map_count [65530] is too low 问题同上,最大线程个数太低
[[email protected] ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
[[email protected] ~]# sysctl -p
vm.max_map_count = 262144
ElasticSearch Head安装
目的:
介绍
- 环境准备
下载nodejs:https://nodejs.org/en/download/
下载ElasticSearch Head源码包:https://github.com/mobz/elasticsearch-head - 环境安装
- 新建文件夹:
mkdir -p /data/es-head/
、mkdir -p /data/nodejs/
- 分别上传:
elasticsearch-head-master.zip
、node-v10.15.3-linux-x64.tar.xz
到对应目录/data/es-head/
,/data/nodejs/
- 解压
[[email protected] nodejs]# tar -vxf node-v10.15.3-linux-x64.tar.xz
- 安装node:
- 配置环境变量:
vim /etc/profile
添加以下配置
export NODE_HOME= /data/nodejs/node
export NODE_PATH=${NODE_HOME}/bin
export PATH=$PATH:${NODE_PATH}
- 环境变量生效:
source /etc/profile
- 编译
elasticsearch-head
[[email protected] ~]# cd /data/es-head/elasticsearch-head-master/
[[email protected] elasticsearch-head-master]# npm install -g grunt-cli
[ .................] | fetchMetadata: sill resolveWithNewModule [email protected] checking installable statu
/data/nodejs/node/bin/grunt -> /data/nodejs/node/lib/node_modules/grunt-cli/bin/grunt
+ [email protected]
added 152 packages from 122 contributors in 106.91s
[[email protected] elasticsearch-head-master]# npm install
- 修改配置文件,添加以下配置
vim /data/elasticsearch-7.0.0/config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
- 启动
ElasticSearch Head
:在elasticsearch-head-master
目录下执行
[[email protected] elasticsearch-head-master]# nohup grunt server &
- 验证:http://10.197.236.102:9100/
elasticsearch-head安装完成
中文分词安装
版本需和ElasticSearch版本一致
- 下载:https://github.com/medcl/elasticsearch-analysis-ik/releases
- 将
elasticsearch-analysis-ik-7.0.0.zip
包上传到elasticsearch
的plugins
目录下 - 解压
[[email protected] elasticsearch-head-master]# cd /data/elasticsearch-7.0.0/plugins/
[[email protected] plugins]# unzip elasticsearch-analysis-ik-7.0.0.zip
- 重启
ElasticSearch
- 完成