目录
Centos7 RPM 安装 ES
互联网技术分享,正是推动互联网的力量
操作系统介绍:
[root@vcontroller limits.d]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@vcontroller limits.d]# uname -r
3.10.0-1160.11.1.el7.x86_64
[root@vcontroller limits.d]# uname -a
Linux vcontroller 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
部署方式选择RPM包管理工具
参考链接:
https://blog.csdn.net/zhezhebie/article/details/105482149
资料我已上传,请下载:https://download.csdn.net/download/shunzi2016/14947537
[root@vcontroller ~]# ll
total 311396
-rw-------. 1 root root 1517 Oct 10 11:03 anaconda-ks.cfg
-rw-r--r--. 1 root root 318859205 Jan 26 17:37 elasticsearch-7.10.2-x86_64.rpm
-rwxr-xr-x. 1 root root 2830 Jan 6 18:42 sys_build.sh
[root@vcontroller ~]# rpm -Uvh elasticsearch-7.10.2-x86_64.rpm
warning: elasticsearch-7.10.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing... ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Updating / installing...
1:elasticsearch-0:7.10.2-1 ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
[root@vcontroller ~]#
修改远程访问和更改IP ,重启es常见问题
遇见如下错误
Job for elasticsearch.service failed because the control process exited with error code. See "systemctl status elasticsearch.service" and "journalctl -xe" for details.
[root@vcontroller ~]# systemctl status elasticsearch
?.elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2021-01-26 17:57:20 CST; 1min 41s ago
Docs: https://www.elastic.co
Process: 9586 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=78)
Main PID: 9586 (code=exited, status=78)
Jan 26 17:57:02 vcontroller systemd[1]: Starting Elasticsearch..
Jan 26 17:57:19 vcontroller systemd-entrypoint[9586]: ERROR: [1] bootstrap checks failed
Jan 26 17:57:19 vcontroller systemd-entrypoint[9586]: [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.see... configured
Jan 26 17:57:19 vcontroller systemd-entrypoint[9586]: ERROR: Elasticsearch did not exit normally - check the logs at /var/log/elasticsearch/elasticsearch.log
Jan 26 17:57:20 vcontroller systemd[1]: elasticsearch.service: main process exited, code=exited, status=78/n/a
Jan 26 17:57:20 vcontroller systemd[1]: Failed to start Elasticsearch.
Jan 26 17:57:20 vcontroller systemd[1]: Unit elasticsearch.service entered failed state.
Jan 26 17:57:20 vcontroller systemd[1]: elasticsearch.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
[root@vcontroller ~]# systemctl start elasticsearch
Job for elasticsearch.service failed because the control process exited with error code. See "systemctl status elasticsearch.service" and "journalctl -xe" for details.
[root@vcontroller ~]# tail -f /var/log/elasticsearch/elasticsearch.log
[2021-01-26T17:59:30,249][INFO ][o.e.t.TransportService ] [vcontroller] publish_address {172.18.46.90:9300}, bound_addresses {[::]:9300}
[2021-01-26T17:59:30,661][INFO ][o.e.b.BootstrapChecks ] [vcontroller] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2021-01-26T17:59:30,728][ERROR][o.e.b.Bootstrap ] [vcontroller] node validation exception
[1] bootstrap checks failed
[1]: 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
[2021-01-26T17:59:30,732][INFO ][o.e.n.Node ] [vcontroller] stopping ...
[2021-01-26T17:59:30,746][INFO ][o.e.n.Node ] [vcontroller] stopped
[2021-01-26T17:59:30,747][INFO ][o.e.n.Node ] [vcontroller] closing ...
[2021-01-26T17:59:30,767][INFO ][o.e.n.Node ] [vcontroller] closed
[2021-01-26T17:59:30,769][INFO ][o.e.x.m.p.NativeController] [vcontroller] Native controller process has stopped - no new native processes can be started
解决此问题的链接:
https://blog.csdn.net/happyzxs/article/details/89156068
感谢此博主
解决上述问题的方式:
切换root用户
vi /etc/security/limits.conf
在倒数第二行
* soft nofile 65536
* hard nofile 65536
# End of file
vi /etc/sysctl.conf
添加
vm.max_map_count=655360
保存后执行
sysctl -p
需要说明的是可能不是90-nproc.conf 比如我的就是20-*开头,如果已经是4096则不用设置。
vi /etc/security/limits.d/90-nproc.conf
修改
* soft nproc 1024
为
* soft nproc 4096
修改
elasticsearch.yml
取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
以下的操作暂时没用到
在 elasticsearch.yml中添加配置项:
bootstrap.system_call_filter为false:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
再次重启启动成功
安装插件: ik pinyin
测试汉字分词:
[root@vcontroller limits.d]#
curl -H 'Content-Type:application/json' -XGET 'http://localhost:9200/_analyze?pretty' -d '{"text":"顺子的技术博客"}'
{
"tokens" : [
{
"token" : "顺",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<IDEOGRAPHIC>",
"position" : 0
},
{
"token" : "子",
"start_offset" : 1,
"end_offset" : 2,
"type" : "<IDEOGRAPHIC>",
"position" : 1
},
{
"token" : "的",
"start_offset" : 2,
"end_offset" : 3,
"type" : "<IDEOGRAPHIC>",
"position" : 2
},
{
"token" : "技",
"start_offset" : 3,
"end_offset" : 4,
"type" : "<IDEOGRAPHIC>",
"position" : 3
},
{
"token" : "术",
"start_offset" : 4,
"end_offset" : 5,
"type" : "<IDEOGRAPHIC>",
"position" : 4
},
{
"token" : "博",
"start_offset" : 5,
"end_offset" : 6,
"type" : "<IDEOGRAPHIC>",
"position" : 5
},
{
"token" : "客",
"start_offset" : 6,
"end_offset" : 7,
"type" : "<IDEOGRAPHIC>",
"position" : 6
}
]
}
中文分词插件地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases
安装中文分词插件
[root@vcontroller ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
-> Installed analysis-ik
[root@vcontroller ~]#
安装拼音分词插件
[root@vcontroller ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin install https://hub.fastgit.org/medcl/elasticsearch-analysis-pinyin/releases/download/v7.10.2/elasticsearch-analysis-pinyin-7.10.2.zip
-> Installing https://hub.fastgit.org/medcl/elasticsearch-analysis-pinyin/releases/download/v7.10.2/elasticsearch-analysis-pinyin-7.10.2.zip
-> Downloading https://hub.fastgit.org/medcl/elasticsearch-analysis-pinyin/releases/download/v7.10.2/elasticsearch-analysis-pinyin-7.10.2.zip
[=================================================] 100%
-> Installed analysis-pinyin
[root@vcontroller ~]# curl http://localhost:9200/_cat/plugins
vcontroller analysis-ik 7.10.2
vcontroller analysis-pinyin 7.10.2
测试中文分词:
[root@vcontroller ~]# curl -H 'Content-Type:application/json' -XGET 'http://localhost:9200/_analyze?pretty=true' -d '{"analyzer":"ik_smart", "text":"我的中国心"}'
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "的",
"start_offset" : 1,
"end_offset" : 2,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "中国心",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 2
}
]
}
测试拼音分词
[root@vcontroller ~]# curl -H 'Content-Type:application/json' -XGET 'http://localhost:9200/_analyze?pretty=true' -d '{"analyzer":"pinyin", "text":"我的中国心"}'
{
"tokens" : [
{
"token" : "wo",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 0
},
{
"token" : "wdzgx",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 0
},
{
"token" : "de",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 1
},
{
"token" : "zhong",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 2
},
{
"token" : "guo",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 3
},
{
"token" : "xin",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 4
}
]
}
打开防火墙 端口
[root@vcontroller ~]# sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
success
[root@vcontroller ~]# firewall-cmd --reload
success