目录

一、简介

二、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版安装教程相关推荐

  1. IBM Lotus Symphony Linux版安装教程cdlinux教程

    超级跑车品牌排行 组图:杨钰莹节目现场遭选手羞辱.. 宜宾再酿酒驾悲剧男子驾车将行人撞飞30.. "最大学生"网友1IBM Lotus Symphony Linux版安装教程cdl ...

  2. teamviewer有linux安装教程,teamviewer linux版安装教程

    teamviewer for linux需要linux 2.6.27内核和glibc2.17.为了获得最佳体验,建议使用Qt5.6.因此,支持以下操作系统: Debian 9(包括Raspbian) ...

  3. Mathematica 13.0.1 Linux版安装教程

    安装 1.下载安装包 2.挂载镜像文件,并进入该文件目录(/media/robot/Mathematica/Unix/Installer) 3.在该目录下打开终端,输入以下命令进行安装 sudo ba ...

  4. Elasticsearch全文搜索引擎-PHP使用教程。

    1.声明依赖关系:         比方说,你的项目中需要一个php版的elasticsearch框架.为了将它添加到你的项目中(下载),你所需要做的就是创建一个 composer.json 文件,其 ...

  5. ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2)

    ElasticSearch 全文搜索引擎的查询详解①(Ubuntu版 v6.6.2) 1. 前提 2. 轻量搜索 2.1 单条件查询 2.2 多条件查询 2.3 不指定属性查询(查询所有文档属性)-- ...

  6. win7 安装深度linux系统安装教程,深度技术win7旗舰版linux虚拟机安装教程

    有用户在问,想在win7系统的用户想在虚拟机中安装linux系统,却不知Win7怎么进行linux虚拟机安装呢?方法其实并不复杂,下面介绍深度技术win7旗舰版linux虚拟机安装教程. 1.想要在w ...

  7. linux crossover教程,CrossOver Linux版如何安装已知应用程序?CrossOver Linux版安装已知应用程序教程...

    CrossOver Linux版是一款让您可以在Linux 系统上运行 Windows 应用的软件,不必购买 Windows 授权,不必重启系统,不必使用虚拟机.CrossOver 可以让您在 Ubu ...

  8. linux怎么安装高德导航软件,高德地图车机版如何安装?高德地图车机版安装教程...

    高德地图车机版是高德为汽车车载机提供的一个专用版本,对于车主们来说有时候用手机导航实在是非常不方便,不仅屏幕小而且还可能中途来个电话什么的.高德地图车机版可以帮你的车载机装上导航地图,就算你不想买导航 ...

  9. 优麒麟linux安装教程,百度网盘Linux版安装指引:搭配优麒麟运行更完美

    原标题:百度网盘Linux版安装指引:搭配优麒麟运行更完美 感谢优麒麟的投递 近日,百度官宣推出了百度网盘 Linux 版(在此之前已发布 Windows.Android.iPhone.iPad.Wi ...

  10. 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压缩包版安装教程,希望对 ...

最新文章

  1. 不定长参数的装包与拆包
  2. 额外篇 | ggplot (上)
  3. 一个好用的基于若干静态图片生成gif图片的在线工具
  4. 竞赛图 计算机网络 应用题,我校学子获2020年“中国高校计算机大赛-网络技术挑战赛”全国总决赛一等奖(图)...
  5. HALCON学习之旅(七)
  6. Java实现文件夹打包
  7. 8 一点就消失_农村即将消失的15个“老物件”,件件充满回忆,全认识说明你老了...
  8. 如何选择一个合适的大数据可视化工具
  9. linux怎样解压bin文件,linux下解压bin文件
  10. dom影像图形成数字地形图_航测相关知识点——鲲鹏智汇承接航测相关任务
  11. element-ui MessageBox 弹框判断确认和取消
  12. 关于我 — About Me
  13. 关于配置tft液晶屏时,屏幕不显示遇到的问题
  14. 数字化技术成为门店的重要推手?
  15. 树莓派4B的引脚控制简单demo
  16. 6waves VP张伟:洞悉SLG等品类赛道,直击日本市场的趋势与机遇
  17. oracle sql以及性能调优
  18. 格密码学习笔记(三):闵可夫斯基第一定理
  19. 18万美元offer!ChatGPT通过谷歌L3入职测试,人类码农危?
  20. 攻防世界MSIC进阶区之can_has_stdio?

热门文章

  1. css3 烟 蚊香_CSS3 冒烟的管道 | 烟囱
  2. 翻译: 全球导航卫星系统 (GNSS) 的演进
  3. 极客大学架构师训练营 性能优化 性能测试指标 性能测试 性能优化 CDN 网络 硬盘 缓存 异步 集群 第13课 听课总结
  4. swoole 连接mysql_Swoole 优雅的实现 MySQL 连接池
  5. 多小区下小区上行速率的计算(4)
  6. 公式推导 11-27
  7. Struts2中过滤器和拦截器的区别
  8. android studio | openGL es 3.0增强现实(AR)开发 (3) OpenGL es3.0基本知识介绍
  9. 爬虫爬取免费代理ip,验证代理ip有效性,保存到本地txt,建立代理池
  10. Java基础知识陷阱(九)