一、 官网下载地址
https://www.elastic.co/downloads/elasticsearch

二、 选择自己对应的es版本下载,并安装JDK1.8+
注意: elasticsearch 运行需要有JAVA_HOME环境变量
如果没有添加 进行如下操作 但是需要在安装JDK的条件下
1. 执行java -verbose
最下边会出现安装目录

[Loaded java.lang.Shutdown$Lock from /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre/lib/rt.jar]

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64 就是安装目录
修改 /etc/profile 文件 我是centos7 在 etd/profile.d/ 目录下自建个java.sh用于配置java环境 此目录下文件会加载到etc/profile里

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64

执行 source /etc/profile 立即生效

三、 下载完成后解压安装包

示例(请将文件名改为自己的安装包名):
tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz在解压后的文件夹里创建一个data文件夹,一会存数据文件用
mkdir data
目录结构介绍:
bin:可执行文件,运行es的命令
config:配置文件目录config/elasticsearch.yml:ES启动基础配置config/jvm.options:ES启动时JVM配置config/log4j2.properties:ES日志输出配置文件
lib:依赖的jar
logs:日志文件夹
modules:es模块
plugins:可以自己开发的插件
data:我们自己创建的,存放es存储文件

四、 对ES进行一些基础配置,打开config目录 elasticsearch.yml配置

1 配置集群名称(默认是被注释的,并且默认有一个集群名)

cluster.name: my-application

2 配置当前es节点名称(默认是被注释的,并且默认有一个节点名)

node.name: node-1

3 配置存储数据的目录路径(用逗号分隔多个位置)和日志文件路径

#
path.data: /home/esroot/elasticsearch-7.2.0/data
#
# Path to log files:
#
path.logs: /home/esroot/elasticsearch-7.2.0/logs
#

4 绑定地址为特定IP地址(设置其它节点和该节点交互的ip地址,如果不设置它会自动判断)默认为0.0.0.0,绑定这台机器的任何一个ip

network.host: 0.0.0.0

5 集群启动时,设置master节点列表 用逗号分隔

cluster.initial_master_nodes: ["node-1", "node-2"]

6 保存配置

五、 启动ES
1 启动bin目录下的elasticsearch报错(这是ES的一种安全措施,不让用root用户)

[root@localhost bin]# ./elasticsearchfuture versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jdk1.8.0_201/jre] does not meet this requirement
[2019-07-11T22:47:02,963][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] 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:163) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.2.0.jar:7.2.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.2.0.jar:7.2.0]... 6 more

2 创建用户并赋予es安装目录权限

创建一个esroot用户并设置初始密码
useradd -c 'ES user' -d /home/esroot esroot
passwd esroot将es安装目录属主权限改为esroot用户
chown -R esroot <es安装目录>切换用户到esroot
su esroot

3 使用esroot用户重启es
注意 : 如果报如下错误 说明 esroot 没有此目录的权限 需要把Elasticsearch文件夹复制到 esroot自己的根目录里然后在操作 建议把elasticsearch安装到执行用户目录下

错误: 找不到或无法加载主类 org.elasticsearch.tools.java_version_checker.JavaVersionChecker

解决后 再次启动es 发现还有错误

问题:max file descriptors [4096] for elasticsearch process is too low,

increase to at least [65536]
原因:每个进程最大同时打开文件数太小 查看当前系统同时打开进程数的默认值:
ulimit -Hn
ulimit -Sn
解决方案:切换到root账户,修改/etc/security/limits.conf文件 增加配置,用户退出后重新登录生效su root 输入密码 vi /etc/security/limits.conf 在文件最后,增加如下配置:

#<domain>      <type>  <item>         <value>
##*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
esroot         hard    nofile   65536
esroot         soft    nofile   65536
esroot         soft    nproc    4096
esroot         hard    nproc    4096# End of file

第一列表示用户和组(@开头) * 号表示全部用户。第二列表示软限制还是硬限制,第三列表示限制的资源类型,第四列表示限制的最大值

hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。

core是内核文件,nofile是文件描述符,noproc是进程,一般情况下只限制文件描述符数和进程数就够了

一下具体介绍

-----------分割线,上面是配置文件的模板,下面是自己添加的------------------------*                soft    nofile         655350      #表示任何一个用户可以打开的最大的文件描述符数量
*               hard    nofile         655350*              soft    nproc          655350      #表示任何一个用户可以打开的最大的进程数
*               hard    nproc          655350@student        hard    nofile          65535       #student组中的任何人最多能打开文件描述符数量是65535,并且会在打开65000个时发出警告
@student        soft    nofile          65000@student        hard    nproc           50           #student组中的任何人不能拥有超过50个进程,并且会在拥有30个进程时发出警告
@student        soft    nproc           30

再次启动 如果报
问题:max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]原因:elasticsearch用户拥有的内存权限太小,至少需要262144 解决:切换到root用户,在/etc/sysctl.conf文件最后添加一行 vm.max_map_count=655360 添加完毕之后,执行命令: sysctl -p

#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.max_map_count=655360
~
~

再次切换到esroot普通用户,重新启动es服务。
执行命令ss -taln

[root@localhost ~]# ss -taln
State       Recv-Q Send-Q              Local Address:Port                Peer Address:Port
LISTEN      0      128                     127.0.0.1:9000                           *:*
LISTEN      0      128                             *:80                             *:*
LISTEN      0      128                             *:22                             *:*
LISTEN      0      128                             *:88                             *:*
LISTEN      0      100                     127.0.0.1:25                             *:*
LISTEN      0      80                             :::3306                          :::*
LISTEN      0      128                            :::9200                          :::*
LISTEN      0      128                            :::9300                          :::*
LISTEN      0      128                            :::22                            :::*
LISTEN      0      100                           ::1:25

设置防火墙 开启 9200端口号访问
· 可在浏览器中输入如下地址:http://192.168.1.54:9200/

· 如果显示如上信息,则代表Linux下ES已经搭建完毕(单机)

停止

· 若是es的前台运行,则用ctrl + c 来停止。

· 若是es的后台运行,则用kill -9 进程号 来停止。(可通过jps命令,查看es进程号)

附详细配置

cluster.name: elasticsearch
# 配置的集群名称,默认是elasticsearch,es服务会通过广播方式自动连接在同一网段下的es服务,通过多播方式进行通信,同一网段下可以有多个集群,通过集群名称这个属性来区分不同的集群。node.name: "Franz Kafka"
# 当前配置所在机器的节点名,你不设置就默认随机指定一个name列表中名字,该name列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。node.master: true
指定该节点是否有资格被选举成为node(注意这里只是设置成有资格, 不代表该node一定就是master),默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。node.data: true
# 指定该节点是否存储索引数据,默认为true。index.number_of_shards: 5
# 设置默认索引分片个数,默认为5片。index.number_of_replicas: 1
# 设置默认索引副本个数,默认为1个副本。如果采用默认设置,而你集群只配置了一台机器,那么集群的健康度为yellow,也就是所有的数据都是可用的,但是某些复制没有被分配
# (健康度可用 curl 'localhost:9200/_cat/health?v' 查看, 分为绿色、黄色或红色。绿色代表一切正常,集群功能齐全,黄色意味着所有的数据都是可用的,但是某些复制没有被分配,红色则代表因为某些原因,某些数据不可用)。path.conf: /path/to/conf
# 设置配置文件的存储路径,默认是es根目录下的config文件夹。path.data: /path/to/data
# 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
# path.data: /path/to/data1,/path/to/data2path.work: /path/to/work
# 设置临时文件的存储路径,默认是es根目录下的work文件夹。path.logs: /path/to/logs
# 设置日志文件的存储路径,默认是es根目录下的logs文件夹 path.plugins: /path/to/plugins
# 设置插件的存放路径,默认是es根目录下的plugins文件夹, 插件在es里面普遍使用,用来增强原系统核心功能。bootstrap.mlockall: true
# 设置为true来锁住内存不进行swapping。因为当jvm开始swapping时es的效率 会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。 同时也要允许elasticsearch的进程可以锁住内# # 存,linux下启动es之前可以通过`ulimit -l unlimited`命令设置。network.bind_host: 192.168.0.1
# 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,绑定这台机器的任何一个ip。network.publish_host: 192.168.0.1
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。network.host: 192.168.0.1
# 这个参数是用来同时设置bind_host和publish_host上面两个参数。transport.tcp.port: 9300
# 设置节点之间交互的tcp端口,默认是9300。transport.tcp.compress: true
# 设置是否压缩tcp传输时的数据,默认为false,不压缩。http.port: 9200
# 设置对外服务的http端口,默认为9200。http.max_content_length: 100mb
# 设置内容的最大容量,默认100mbhttp.enabled: false
# 是否使用http协议对外提供服务,默认为true,开启。gateway.type: local
# gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器等。gateway.recover_after_nodes: 1
# 设置集群中N个节点启动时进行数据恢复,默认为1。gateway.recover_after_time: 5m
# 设置初始化数据恢复进程的超时时间,默认是5分钟。gateway.expected_nodes: 2
# 设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。cluster.routing.allocation.node_initial_primaries_recoveries: 4
# 初始化数据恢复时,并发恢复线程的个数,默认为4。cluster.routing.allocation.node_concurrent_recoveries: 2
# 添加删除节点或负载均衡时并发恢复线程的个数,默认为4。indices.recovery.max_size_per_sec: 0
# 设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。indices.recovery.concurrent_streams: 5
# 设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。discovery.zen.minimum_master_nodes: 1
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)discovery.zen.ping.timeout: 3s
# 设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。discovery.zen.ping.multicast.enabled: false
# 设置是否打开多播发现节点,默认是true。discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。

elasticsearch7版本引入的新集群协调子系统了解一哈,新增两个如下配置项
discovery 和cluster 设置,以便群集中的节点可以相互发现并选择主节点。

#设置提供群集中其他节点的列表,这些节点符合主要条件且可能是实时且可联系的,以便为发现过程设定种子。 此设置通常应包含群集中所有符合主节点的节点的地址。 此设置包含主机数组或逗号分隔的字符串。 每个值应采用host:port或host的形式
discovery.seed_hosts#当您第一次启动全新的Elasticsearch集群时,会出现一个集群引导步骤,该步骤确定在第一次选举中计票的主要合格节点集因此当您在生产模式下启动全新集群时,必须明确列出符合条件的节点的名称或IP地址,这些节点的投票应在第一次选举中计算 集群中第一个主节点启动 许设置此项
cluster.initial_master_nodes

有个坑 需要详细记录一下 我在window里安装es 与linux里安装的es 始终无法通信 配置到一个集群里
报错如下

[2019-07-30T11:02:21,462][WARN ][o.e.c.c.Coordinator      ] [node-1] failed to validate incoming join request from node [{node-2}{kAGAg2OgRs23B18o02Bi8g}{G5CsI1qRQ_qoNSH-svOUgQ}{192.168.1.54}{192.168.1.54:9300}{ml.machine_memory=1922908160, ml.max_open_jobs=20, xpack.installed=true}]
org.elasticsearch.transport.RemoteTransportException: [node-2][192.168.1.54:9300][internal:cluster/coordination/join/validate]
Caused by: org.elasticsearch.cluster.coordination.CoordinationStateRejectedException: join validation on cluster state with a different cluster uuid bpTA6ZzARoaSpNFW_Lt_fg than local cluster uuid LcwnN93RSdGl8VqtEjZ8xA, rejectingat org.elasticsearch.cluster.coordination.JoinHelper.lambda$new$4(JoinHelper.java:147) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.xpack.security.transport.SecurityServerTransportInterceptor$ProfileSecuredRequestHandler$1.doRun(SecurityServerTransportInterceptor.java:250) ~[?:?]at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-7.2.0.jar:7.2.0]

我换成两个都是linux的系统就没问题 应该是不同系统之间 uuid匹配不了 所以不能在一个集群里

Elasticsearch 7.2 安装方法 及常见错误以及详细配置介绍相关推荐

  1. 安装oracle 10g闪退,Windows 7安装Oracle 10g常见错误及解决方法

    Windows 7安装Oracle 10g常见错误及解决方法 在安装之前,我们要先下载相应的版本. 点击:Oracle 10g支持Win7版 错误A: 正在检查操作系统要求... 要求的结果: 5.0 ...

  2. ORACLE数据库常见问题诊断方法 ---(常见错误篇)

    ORACLE数据库常见问题诊断方法 ---(常见错误篇) 1       ORA-12571.ORA-03113.ORA-03114.ORA-01041 特征:客户端(代理或应用服务器)有时报这类断连 ...

  3. 让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

    第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发 ...

  4. npm安装脚手架工具常见错误解决方法

    1.npm install -g xxx全局安装出错 第一种错误:文件夹权限问题 报错: Unhandled rejection Error: EPERM: operation not permitt ...

  5. Linux中常见软件安装方法及常见管理方法

    软件安装及管理 一.软件的类型 二.Tar包安装.升级.卸载(必须会) 三.RPM软件包安装及管理(必须会) 四.脚本安装.升级.卸载 五.SRPM包安装(知道就行,很少用) 一.软件的类型 1.软件 ...

  6. windowsxp计划任务设置方法(附常见错误解决)

    计划任务应该是很老的一个系统的功能的!记得从98下就有的! 也渐渐的被人淡忘了!昨天从菜园某求助帖上发现还是有不少人对此不是很熟悉!另外网上的资料似乎也讲的不是很多!那就研究一下,做个教程大家熟悉一下 ...

  7. 计算机主机风扇安装方法,机箱风扇怎么装,详细教您电脑机箱风扇怎么装

    一些热爱电脑的朋友,估计对自己的电脑已经拆了很多次了吧,所以一些简单的拆装也是清楚的.但是也有很多朋友是不知道组装的,比如说电脑机箱风扇的安装.因为安装机箱风扇方式不一样,散热效果也是不一样的,下面, ...

  8. 计算机操作系统u盘的安装方法,u盘操作系统_详细教您怎么把系统装进U盘

    u盘操作系统是将完整的Windows系统安装在U盘里面,这样就可以实现系统随身携带,非常的方便,现在小编给大家介绍u盘操作系统的安装方法,有兴趣的朋友可以了解一下. 现在的U盘容量都很大,传输速度也很 ...

  9. smart gesture安装失败_WinCC flexible SMART V3 SP2安装步骤以及常见错误解决方法

    1 安装配置 1. win7和win10系统都可以装 2. 运行内存至少要2G. 3. 硬盘储存空间至少要3G. 2 安装注意事项 1.安装本软件之前必须要关闭所有杀毒软件(例如360安全卫士/360 ...

最新文章

  1. ansys大变形开关要不要打开_ANSYS网格质量评定指标介绍
  2. 计算机考试一级考试基础知识,2016计算机一级考试msoffice基础知识
  3. opencv实现正交匹配追踪算法OMP
  4. 华为交换机配置Telnet
  5. openwrt系统安装到云服务器异常,OpenWrt路由器系统下服务OpenClash 安装教程及其折腾踩坑记录...
  6. Orac and Medians CodeForces - 1350D(思维)
  7. 视频光端机选型及常见品牌
  8. Apache Flink新场景——OLAP引擎
  9. MySql 随机读取多行数据并显示
  10. 23种设计模式(十九)数据结构之组合模式
  11. Git基础之(十五)——分支管理——分支管理策略
  12. 如何配置shopex网店静态化(URL重写)
  13. HTML元素拖拽功能的实现
  14. 无敌!确定恋爱关系的搞笑招式
  15. 全景图下载,全景管家高清全景图(一键下载建E、720云全景原图)
  16. 自增运算,阴间代码《奇思妙想二》
  17. Excel批量选中表格中所有图片
  18. 使用国内的镜像源搭建 kubernetes(k8s)集群
  19. 备案过的域名解析到别的服务器,教你如何解析未备案的域名到国内服务器
  20. Android四大组件生命周期

热门文章

  1. PS(MPG)文件格式分析
  2. 2021年化工自动化控制仪表免费试题及化工自动化控制仪表找解析
  3. linux镜像网站大全
  4. 如何在Ubuntu 18.04上安装ERPNext堆栈
  5. JRebel激活失效解决
  6. aps高级排产软件,我看行
  7. Linux下安装kettle及作业调度
  8. LabWindows CVI 2017开发笔记--串口调试软件实例
  9. C++:深/浅拷贝构造
  10. 同步异步、JS执行机制、事件循环