ElasticSearch全文搜索引擎之Linux版安装教程
目录
一、简介
二、Linux下安装ElasticSearch
一、简介
前面我们已经在windows下搭建了es环境,但是在实际工作中,基本上都是部署在Linux系统中,本篇文章将介绍如何在Linux下搭建elasticsearch环境,并通过配置实现外网可以访问到es。
二、Linux下安装ElasticSearch
【a】下载linux版本的es压缩包
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
elasticsearch官网下载非常慢,建议小伙伴们去找国内活雷锋分享的百度云盘下载,这里笔者以elasticsearch-7.6.2-linux-x86_64.tar.gz为例讲解linux下es的详细安装步骤。
因为es7.6 已经内置了jdk,所以机器不需要有java环境。如果机器有java环境,务必保持和es版本匹配的java环境。
【b】将下载好的压缩包上传到linux服务器中
[root@localhost /]# mkdir es
[root@localhost /]# cd es
[root@localhost es]# ll
total 0
[root@localhost es]# rz
【c】解压缩elasticsearch-7.6.2-linux-x86_64.tar.gz
[root@localhost es]# ll
total 289532
-rw-r--r--. 1 root root 296477546 Oct 10 14:42 elasticsearch-7.6.2-linux-x86_64.tar.gz
[root@localhost es]# tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
【d】解压缩完成后,我们进入到bin目录
[root@localhost es]# cd elasticsearch-7.6.2/bin/
[root@localhost bin]# ll
total 19604
-rwxr-xr-x. 1 root root 1915 Mar 26 2020 elasticsearch
-rwxr-xr-x. 1 root root 491 Mar 26 2020 elasticsearch-certgen
-rwxr-xr-x. 1 root root 483 Mar 26 2020 elasticsearch-certutil
-rwxr-xr-x. 1 root root 982 Mar 26 2020 elasticsearch-cli
-rwxr-xr-x. 1 root root 433 Mar 26 2020 elasticsearch-croneval
-rwxr-xr-x. 1 root root 4313 Mar 26 2020 elasticsearch-env
-rwxr-xr-x. 1 root root 1828 Mar 26 2020 elasticsearch-env-from-file
-rwxr-xr-x. 1 root root 121 Mar 26 2020 elasticsearch-keystore
-rwxr-xr-x. 1 root root 440 Mar 26 2020 elasticsearch-migrate
-rwxr-xr-x. 1 root root 126 Mar 26 2020 elasticsearch-node
-rwxr-xr-x. 1 root root 172 Mar 26 2020 elasticsearch-plugin
-rwxr-xr-x. 1 root root 431 Mar 26 2020 elasticsearch-saml-metadata
-rwxr-xr-x. 1 root root 438 Mar 26 2020 elasticsearch-setup-passwords
-rwxr-xr-x. 1 root root 118 Mar 26 2020 elasticsearch-shard
-rwxr-xr-x. 1 root root 427 Mar 26 2020 elasticsearch-sql-cli
-rwxr-xr-x. 1 root root 19986912 Mar 26 2020 elasticsearch-sql-cli-7.6.2.jar
-rwxr-xr-x. 1 root root 426 Mar 26 2020 elasticsearch-syskeygen
-rwxr-xr-x. 1 root root 426 Mar 26 2020 elasticsearch-users
-rwxr-xr-x. 1 root root 346 Mar 26 2020 x-pack-env
-rwxr-xr-x. 1 root root 354 Mar 26 2020 x-pack-security-env
-rwxr-xr-x. 1 root root 353 Mar 26 2020 x-pack-watcher-env
[root@localhost bin]# ./elasticsearch
启动elasticsearch,我们发现启动报错:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
[2020-10-10T15:58:13,175][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [localhost.localdomain] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:174) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125) ~[elasticsearch-cli-7.6.2.jar:7.6.2]at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.6.2.jar:7.6.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.6.2.jar:7.6.2]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170) ~[elasticsearch-7.6.2.jar:7.6.2]... 6 more
uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105)at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172)at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349)at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)at org.elasticsearch.cli.Command.main(Command.java:90)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /es/elasticsearch-7.6.2/logs/elasticsearch.log
上述错误是因为elasticsearch默认是不能以root 用户进行启动,所以我们需要自己创建一个用户用于启动elasticsearch。
【e】创建用户组和用户es
[root@localhost bin]# groupadd es
groupadd: group 'es' already exists
[root@localhost bin]# useradd -g es es
useradd: user 'es' already exists
[root@localhost bin]# chown -R es:es /es/elasticsearch-7.6.2/
[root@localhost bin]# ll
total 19604
-rwxr-xr-x. 1 es es 1915 Mar 26 2020 elasticsearch
-rwxr-xr-x. 1 es es 491 Mar 26 2020 elasticsearch-certgen
-rwxr-xr-x. 1 es es 483 Mar 26 2020 elasticsearch-certutil
-rwxr-xr-x. 1 es es 982 Mar 26 2020 elasticsearch-cli
-rwxr-xr-x. 1 es es 433 Mar 26 2020 elasticsearch-croneval
-rwxr-xr-x. 1 es es 4313 Mar 26 2020 elasticsearch-env
-rwxr-xr-x. 1 es es 1828 Mar 26 2020 elasticsearch-env-from-file
-rwxr-xr-x. 1 es es 121 Mar 26 2020 elasticsearch-keystore
-rwxr-xr-x. 1 es es 440 Mar 26 2020 elasticsearch-migrate
-rwxr-xr-x. 1 es es 126 Mar 26 2020 elasticsearch-node
-rwxr-xr-x. 1 es es 172 Mar 26 2020 elasticsearch-plugin
-rwxr-xr-x. 1 es es 431 Mar 26 2020 elasticsearch-saml-metadata
-rwxr-xr-x. 1 es es 438 Mar 26 2020 elasticsearch-setup-passwords
-rwxr-xr-x. 1 es es 118 Mar 26 2020 elasticsearch-shard
-rwxr-xr-x. 1 es es 427 Mar 26 2020 elasticsearch-sql-cli
-rwxr-xr-x. 1 es es 19986912 Mar 26 2020 elasticsearch-sql-cli-7.6.2.jar
-rwxr-xr-x. 1 es es 426 Mar 26 2020 elasticsearch-syskeygen
-rwxr-xr-x. 1 es es 426 Mar 26 2020 elasticsearch-users
-rwxr-xr-x. 1 es es 346 Mar 26 2020 x-pack-env
-rwxr-xr-x. 1 es es 354 Mar 26 2020 x-pack-security-env
-rwxr-xr-x. 1 es es 353 Mar 26 2020 x-pack-watcher-env
[root@localhost bin]#
注意:由于笔者这里之前已经创建过用户组和用户es,所以提示已存在,初次创建时是不会提示的。
创建完成后,我们切换用户再次启动es:
[root@localhost bin]# su es
[es@localhost bin]$ ./elasticsearch
如下图,es启动成功,可以看到监听地址为:http://127.0.0.1:9200/
通过下面的命令查看es信息:
[root@localhost /]# curl -X GET 127.0.0.1:9200
{"name" : "localhost.localdomain","cluster_name" : "elasticsearch","cluster_uuid" : "bGQWfqOfQwimmU5iES61jA","version" : {"number" : "7.6.2","build_flavor" : "default","build_type" : "tar","build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f","build_date" : "2020-03-26T06:34:37.794943Z","build_snapshot" : false,"lucene_version" : "8.4.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}
可以看到,跟之前windows版本的提示信息一致,输出出默认的集群名称、elasticsearch版本信息等,说明我们linux下的es安装并且启动成功。
【f】配置外网访问
可以看到,前面我们使用的是http://127.0.0.1:9200/本机进行访问,但是实际工作中,我们更多时候需要支持外网能直接访问es,所以需要我们做一些配置,以支持es外网访问。
[root@localhost /]# cd es/elasticsearch-7.6.2/
[root@localhost elasticsearch-7.6.2]# ll
total 552
drwxr-xr-x. 2 es es 4096 Mar 26 2020 bin
drwxr-xr-x. 2 es es 178 Oct 10 15:58 config
drwxrwxr-x. 3 es es 19 Oct 10 16:03 data
drwxr-xr-x. 9 es es 107 Mar 26 2020 jdk
drwxr-xr-x. 3 es es 4096 Mar 26 2020 lib
-rw-r--r--. 1 es es 13675 Mar 26 2020 LICENSE.txt
drwxr-xr-x. 2 es es 4096 Oct 10 16:03 logs
drwxr-xr-x. 38 es es 4096 Mar 26 2020 modules
-rw-r--r--. 1 es es 523209 Mar 26 2020 NOTICE.txt
drwxr-xr-x. 2 es es 6 Mar 26 2020 plugins
-rw-r--r--. 1 es es 8164 Mar 26 2020 README.asciidoc
[root@localhost elasticsearch-7.6.2]# cd config/
[root@localhost config]# ll
total 40
-rw-rw----. 1 es es 199 Oct 10 15:58 elasticsearch.keystore
-rw-rw----. 1 es es 2831 Mar 26 2020 elasticsearch.yml
-rw-rw----. 1 es es 2301 Mar 26 2020 jvm.options
-rw-rw----. 1 es es 17545 Mar 26 2020 log4j2.properties
-rw-rw----. 1 es es 473 Mar 26 2020 role_mapping.yml
-rw-rw----. 1 es es 197 Mar 26 2020 roles.yml
-rw-rw----. 1 es es 0 Mar 26 2020 users
-rw-rw----. 1 es es 0 Mar 26 2020 users_roles
[root@localhost config]# vim elasticsearch.yml
修改network.host对应的值:指定Linux服务器IP地址。
network.host: 192.168.179.133
修改完成保存退出,我们重启es:
如上图,启动失败,报了三个错误,下面我们一个一个解决:
(1)、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方法:编辑 /etc/security/limits.conf,追加一些配置信息。
vim /etc/security/limits.conf
在文件最后面添加如下内容:
* soft nofile 65536
* hard nofile 65536
(2)、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:往/etc/sysctl.conf文件中追加一些配置,具体命令如下:
su root
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
(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
解决方法:指定集群名称、当前节点名称以及初始化主节点配置信息。
cluster.name: my-application
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
以上三个地方修改完成之后,我们再次启动elasticsearch:
我们发现,es成功启动,如上图可以看到,es已经成功绑定到我们指定的外网IP:
[root@localhost config]# curl -X GET 192.168.179.133:9200
{"name" : "node-1","cluster_name" : "my-application","cluster_uuid" : "bGQWfqOfQwimmU5iES61jA","version" : {"number" : "7.6.2","build_flavor" : "default","build_type" : "tar","build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f","build_date" : "2020-03-26T06:34:37.794943Z","build_snapshot" : false,"lucene_version" : "8.4.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}
[root@localhost config]#
下面我们通过浏览器访问:http://192.168.179.133:9200/
可以看到,外网也可以访问到elasticsearch服务了。
注意:
如果外网还是不能访问的话,可以尝试下面的方法处理一下,说不定就是下面的原因导致不能外网访问。
- 禁用防火墙: systemctl disable firewalld
- iptables对外暴露端口:vi /etc/sysconfig/iptables,添加如下两行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9300 -j ACCEPT
至此,我们实现了Linux环境下ElasticSearch的安装、启动以及配置外网可访问,更多的配置可以参考elasticsearch官方文档,希望对小伙伴们的学习有所帮助。
ElasticSearch全文搜索引擎之Linux版安装教程相关推荐
- IBM Lotus Symphony Linux版安装教程cdlinux教程
超级跑车品牌排行 组图:杨钰莹节目现场遭选手羞辱.. 宜宾再酿酒驾悲剧男子驾车将行人撞飞30.. "最大学生"网友1IBM Lotus Symphony Linux版安装教程cdl ...
- teamviewer有linux安装教程,teamviewer linux版安装教程
teamviewer for linux需要linux 2.6.27内核和glibc2.17.为了获得最佳体验,建议使用Qt5.6.因此,支持以下操作系统: Debian 9(包括Raspbian) ...
- Mathematica 13.0.1 Linux版安装教程
安装 1.下载安装包 2.挂载镜像文件,并进入该文件目录(/media/robot/Mathematica/Unix/Installer) 3.在该目录下打开终端,输入以下命令进行安装 sudo ba ...
- Elasticsearch全文搜索引擎-PHP使用教程。
1.声明依赖关系: 比方说,你的项目中需要一个php版的elasticsearch框架.为了将它添加到你的项目中(下载),你所需要做的就是创建一个 composer.json 文件,其 ...
- ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2)
ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2) 1. 前提 2. 轻量搜索 2.1 单条件查询 2.2 多条件查询 2.3 不指定属性查询(查询所有文档属性)-- ...
- win7 安装深度linux系统安装教程,深度技术win7旗舰版linux虚拟机安装教程
有用户在问,想在win7系统的用户想在虚拟机中安装linux系统,却不知Win7怎么进行linux虚拟机安装呢?方法其实并不复杂,下面介绍深度技术win7旗舰版linux虚拟机安装教程. 1.想要在w ...
- linux crossover教程,CrossOver Linux版如何安装已知应用程序?CrossOver Linux版安装已知应用程序教程...
CrossOver Linux版是一款让您可以在Linux 系统上运行 Windows 应用的软件,不必购买 Windows 授权,不必重启系统,不必使用虚拟机.CrossOver 可以让您在 Ubu ...
- linux怎么安装高德导航软件,高德地图车机版如何安装?高德地图车机版安装教程...
高德地图车机版是高德为汽车车载机提供的一个专用版本,对于车主们来说有时候用手机导航实在是非常不方便,不仅屏幕小而且还可能中途来个电话什么的.高德地图车机版可以帮你的车载机装上导航地图,就算你不想买导航 ...
- 优麒麟linux安装教程,百度网盘Linux版安装指引:搭配优麒麟运行更完美
原标题:百度网盘Linux版安装指引:搭配优麒麟运行更完美 感谢优麒麟的投递 近日,百度官宣推出了百度网盘 Linux 版(在此之前已发布 Windows.Android.iPhone.iPad.Wi ...
- mysql5.7.17.zip教程,Mysql学习win10下mysql 5.7.17 zip压缩包版安装教程
搜索热词 <MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程>要点: 本文介绍了MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程,希望对 ...
最新文章
- 不定长参数的装包与拆包
- 额外篇 | ggplot (上)
- 一个好用的基于若干静态图片生成gif图片的在线工具
- 竞赛图 计算机网络 应用题,我校学子获2020年“中国高校计算机大赛-网络技术挑战赛”全国总决赛一等奖(图)...
- HALCON学习之旅(七)
- Java实现文件夹打包
- 8 一点就消失_农村即将消失的15个“老物件”,件件充满回忆,全认识说明你老了...
- 如何选择一个合适的大数据可视化工具
- linux怎样解压bin文件,linux下解压bin文件
- dom影像图形成数字地形图_航测相关知识点——鲲鹏智汇承接航测相关任务
- element-ui MessageBox 弹框判断确认和取消
- 关于我 — About Me
- 关于配置tft液晶屏时,屏幕不显示遇到的问题
- 数字化技术成为门店的重要推手?
- 树莓派4B的引脚控制简单demo
- 6waves VP张伟:洞悉SLG等品类赛道,直击日本市场的趋势与机遇
- oracle sql以及性能调优
- 格密码学习笔记(三):闵可夫斯基第一定理
- 18万美元offer!ChatGPT通过谷歌L3入职测试,人类码农危?
- 攻防世界MSIC进阶区之can_has_stdio?
热门文章
- css3 烟 蚊香_CSS3 冒烟的管道 | 烟囱
- 翻译: 全球导航卫星系统 (GNSS) 的演进
- 极客大学架构师训练营 性能优化 性能测试指标 性能测试 性能优化 CDN 网络 硬盘 缓存 异步 集群 第13课 听课总结
- swoole 连接mysql_Swoole 优雅的实现 MySQL 连接池
- 多小区下小区上行速率的计算(4)
- 公式推导 11-27
- Struts2中过滤器和拦截器的区别
- android studio | openGL es 3.0增强现实(AR)开发 (3) OpenGL es3.0基本知识介绍
- 爬虫爬取免费代理ip,验证代理ip有效性,保存到本地txt,建立代理池
- Java基础知识陷阱(九)