ElasticSearch-2_duplicate field 'cluster.initial_master_nodes-程序员宅基地

技术标签: ElasticSearch  

ElasticSearch环境

1.集群Cluster

一个 Elasticsearch 集群有一个唯一的名字标识,这个名字默认就是”elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。

2.节点Node

集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能。

一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于 Elasticsearch 集群中的哪些节点。一个节点可以通过配置集群名称的方式来加入一个指定的集群。

默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。

如果当前你的网络中没有运行任何 Elasticsearch 节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。

3.Windows集群

创建 elasticsearch-cluster 文件夹,在内部复制三个 elasticsearch 服务

修改集群文件目录中每个节点的 config/elasticsearch.yml 配置文

node-1001 节点

#节点 1 的配置信息:

#集群名称,节点之间要保持一致

cluster.name: my-elasticsearch

#节点名称,集群内要唯一

node.name: node-1001

node.master: true

node.data: true

#ip 地址

network.host: localhost

#http 端口

http.port: 1001

#tcp 监听端口

transport.tcp.port: 9301

#discovery.seed_hosts: ["localhost:9301", "localhost:9302","localhost:9303"]

#discovery.zen.fd.ping_timeout: 1m

#discovery.zen.fd.ping_retries: 5

#集群内的可以被选为主节点的节点列表

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

#跨域配置

#action.destructive_requires_name: true http.cors.enabled: true http.cors.allow-origin: "*"

node-1002 节点

#节点 2 的配置信息:

#集群名称,节点之间要保持一致

cluster.name: my-elasticsearch

#节点名称,集群内要唯一

node.name: node-1002

node.master: true

node.data: true

#ip 地址

network.host: localhost

#http 端口

http.port: 1002

#tcp 监听端口

transport.tcp.port: 9302

discovery.seed_hosts: ["localhost:9301"]

discovery.zen.fd.ping_timeout: 1m

discovery.zen.fd.ping_retries: 5

#集群内的可以被选为主节点的节点列表

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

node-1003 节点

#节点 3 的配置信息:

#集群名称,节点之间要保持一致

cluster.name: my-elasticsearch

#节点名称,集群内要唯一

node.name: node-1003

node.master: true

node.data: true

#ip 地址

network.host: localhost

#http 端口

http.port: 1003

#tcp 监听端口

transport.tcp.port: 9303

#候选主节点的地址,在开启服务后可以被选为主节点

discovery.seed_hosts: ["localhost:9301", "localhost:9302"]

discovery.zen.fd.ping_timeout: 1m

discovery.zen.fd.ping_retries: 5

#集群内的可以被选为主节点的节点列表

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

4.启动集群

启动前先删除每个节点中的 data 目录中所有内容(如果存在)

分别双击执行 bin/elasticsearch.bat, 启动节点服务器,启动后,会自动加入指定名称的集群

5.测试集群

查看集群状态

node-1001 节点

node-1002 节点

node-1003 节点

向集群中的 node-1001 节点增加索引

向集群中的 node-1002 节点查询索引

Linux单机

创建用户

因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户

useradd es #新增 es 用户

passwd es #为 es 用户设置密码

userdel -r es #如果错了,可以删除再加

chown -R es:es /opt/module/es #文件夹所有者

修改配置文件

# 加入如下配置

cluster.name: elasticsearch

node.name: node-1

network.host: 0.0.0.0

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

修改/opt/module/es/config/elasticsearch.yml 文件

# 在文件末尾中增加下面内容

# 每个进程可以打开的文件数的限制

es soft nofile 65536

es hard nofile 65536

 修改/etc/security/limits.conf

# 在文件末尾中增加下面内容

# 每个进程可以打开的文件数的限制

es soft nofile 65536

es hard nofile 65536

修改/etc/security/limits.d/20-nproc.conf

# 操作系统级别对每个用户创建的进程数的限制

* hard nproc 4096

# 注:* 带表 Linux 所有用户名称

修改/etc/sysctl.conf

# 在文件中增加下面内容

# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536 vm.max_map_count=655360

重新加载

sysctl -p

启动软件

cd /opt/module/es/

#启动bin/elasticsearch

#后台启动

bin/elasticsearch -d

使用 ES 用户启动

启动时,会动态生成文件,如果文件所属用户不匹配,会发生错误,需要重新进行修改用户和用户组

关闭防火墙

#暂时关闭防火墙

systemctl stop firewalld

#永久关闭防火墙

systemctl enable firewalld.service #打开放货抢永久性生效,重启后不会复原

systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

测试

浏览器中输入地址:http://linux1:9200/

Linux集群

创建用户

因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要在每个节点中创建新用户,在 root 用户中创建新用户

useradd es #新增 es 用户

passwd es #为 es 用户设置密码

userdel -r es #如果错了,可以删除再加

chown -R es:es /opt/module/es-cluster #文件夹所有者

修改配置文件

# 加入如下配置

#集群名称

cluster.name: cluster-es

#节点名称,每个节点的名称不能重复

node.name: node-1

#ip 地址,每个节点的地址不能重复

修改/opt/module/es/config/elasticsearch.yml 文件,分发文件

network.host: linux1

#是不是有资格主节点

node.master: true

node.data: true

http.port: 9200

# head 插件需要这打开这两个配置

http.cors.allow-origin: "*"

http.cors.enabled: true

http.max_content_length: 200mb

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master

cluster.initial_master_nodes: ["node-1"]

#es7.x 之后新增的配置,节点发现

discovery.seed_hosts:["linux1:9300","linux2:9300","linux3:9300"] gateway.recover_after_nodes: 2

network.tcp.keep_alive: true

network.tcp.no_delay: true

transport.tcp.compress: true

#集群内同时启动的数据任务个数,默认是 2 个

cluster.routing.allocation.cluster_concurrent_rebalance: 16

#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个

cluster.routing.allocation.node_concurrent_recoveries: 16

#初始化数据恢复时,并发恢复线程的个数,默认 4 个

cluster.routing.allocation.node_initial_primaries_recoveries: 16

修改/etc/security/limits.conf ,分发文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/syc0616/article/details/118456314

智能推荐

如何正确学习数据结构、算法这门课?_如果让你来讲数据结构这门课,你准备怎么讲-程序员宅基地

文章浏览阅读1.2w次,点赞62次,收藏205次。你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书。正是这个原因,让很多初学者对这门课望而却步。我个人觉得,其实真正的原因是你没有找到好的学习方法,没有抓住学习的重点。实际上,数据结构和算法的东西并不多,常用的、基础的知识点更是屈指可数。只要掌握了正确的学习方法,学起来并没有看上去那..._如果让你来讲数据结构这门课,你准备怎么讲

Mac用户速度来看!!Adobe 全家桶关闭自动更新?_illustrato关闭更新-程序员宅基地

文章浏览阅读1.1k次。有很多朋友在mac电脑上安装 Adobe 系列软件后,激活后过一段时间发现不能再使用,原来是 Adobe Creative Cloud 对软件进行了自动更新,自动更新后软件失去了激活,导致软件无法再使用。如果你发现 mac版photoshop,AE,PR突然不能使用了,请跟小编一起学学怎么关闭 Adobe Creative Cloud自动更新吧!Adobe 2020 Mac版全系列合集 「温馨提示:有会员的宝宝们可以下载哦」1、通过 Command+空格,输入creative cloud 快速启动._illustrato关闭更新

thrift源码解析——深度学习模型的服务器端工程化落地方案_java项目深度学习算法工程化-程序员宅基地

文章浏览阅读401次。来源 | 极链AI云(性价比最高的共享GPU算力平台,双十活动进行中 10.9-10.11,充值就送!最多可送2500元现金券!免费试用地址:https://cloud.videojj.com/)文章来源:https://cloud.videojj.com/bbs/topic/28/thrift源码解析-深度学习模型的服务器端工程化落地方案/2有了训练好的模型,怎么用服务调用?很多人可能会想到用flask进行http调用。那如果是内网呢?如果希望去掉http封包解包一系列耗时操作呢?自然我们会._java项目深度学习算法工程化

Activiti 变量设置-程序员宅基地

文章浏览阅读94次。  使用工作流的时候必定会附上一些变量。例如,请假的时候有填写请假理由,天数等等。可以用以下代码实现  public void setVariables(){ /**与任务(正在执行)*/ TaskService taskService = processEngine.getTaskService(); //任务ID ..._activiti 数组变量设置

Codeforces Round #717 (Div. 2)A-B详解_xooo3-程序员宅基地

文章浏览阅读248次。题目链接:https://codeforces.com/contest/1516A.Tit for Tat题意:给定一个数组,然后再给定n和k。你可以执行操作如下:给任意两个不同的元素(下标不同)一个加上1,一个减掉1。最多执行k次这样的操作,请你给出一个字典序最小的数组。..._xooo3

cmd模式下的adb命令不能用_cmd无法运行adb-程序员宅基地

文章浏览阅读2.9k次。adb 命令不能用提示不是内部或者外部命令 需要 配置环境变量。1.找到android sdk的目录,E:\android-sdk\platform-tools;把这个目录加到path前面去2.windows 7记得重新启动电脑。再通过 cd目录到databases目下。3.使用sqlite3 命令去操作数据库。_cmd无法运行adb

随便推点

C++ XML-程序员宅基地

文章浏览阅读70次。写Unmanaged Code在.NET时代成为一种很悲惨的事,当你需要处理XML文件时,这种感觉会变得尤其强烈。FCL中的System.Xml多简单啊,连Steve Ballmer都知道怎么用。事情不会总是那么理想的,如果你要在C/C++程序里处理XML怎么办呢?选择一:市面上的XML lib还是有几个的,最有名的当然是libxml。我一年前用过,很不错,我还特意写了一份简明教程..._xmlfile->load(varxml, &varout)

Mac教程:如何开启任何来源选项_开启所有来源csdn-程序员宅基地

文章浏览阅读727次。最近很多朋友咨询关于Mac如何开启任何来源选项的问题,今天小编就和大家聊一聊这个话题,希望可以帮助到大家。使用Mac电脑安装或运行软件,你是否遇到提示该镜像已损坏,请移至废纸篓的问题呢?这有可能是你的电脑系统在系统偏好设置中关闭了任何来源选项,如何开启任何来源选项呢?小编带来了Mac电脑开启任何来源选项教程,一起来看看吧!如何查看是否开启点击左上角的系统偏好设置2. 点击安全与隐私3. 点击通用如何开启按照图示1.2.3打开Spotlight,输入终端然后按下enter键2. 复制sudo spc_开启所有来源csdn

Java序列化方案概述-程序员宅基地

文章浏览阅读228次。2019独角兽企业重金招聘Python工程师标准>>> ..._java原生的serialization方案

Oracle BBED 工具 说明-程序员宅基地

文章浏览阅读115次。http://blog.csdn.net/tianlesoftware/article/details/5006580 David Dai -- Focus on OracleThe import..._editor does not attain a main type java

ORACLE 几种同步灾备手段(OGG,ADG,DSG,高级复制,流复制,logmnr)_ogg和dsg优缺点-程序员宅基地

文章浏览阅读4.6k次,点赞3次,收藏14次。目前所接触的Oracle 的灾备以及同步手段主要有ADG,OGG,DSG,高级复制,流复制以及自主开发的基于logmnr的数据同步软件,各有优劣。各自评价如下:1. ADG,最常用的同城,异地灾备解决方案,物理级备份,备机不可写,传输数据为所有redo日志的更改,数据量稍大,不过从以往的使用经验来看,也不太会影响网络,除非应用对网络有很苛刻的要求,即使有,也可以通过vlan或者路由或者多网卡的方法特别建立网络通道,主备库完全一致,缺点是必须全库备份。2. OGG,DSG这两个我觉得是一个类型的,逻辑备._ogg和dsg优缺点

SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)_开始执行自动配置逻辑-程序员宅基地

文章浏览阅读2.1w次,点赞29次,收藏56次。在上一篇博客中分析了springBoot启动流程,大体的轮廓只是冰山一角。今天就来看一下springBoot的亮点功能:自动化装配功能。 先从@SpringBootApplication开始。在启动流程章节中,我们讲述了SpringBoot2大致的启动步骤,并进行了源码详解。但是在刷新容器这块并未展开,refreshContext(context);简单的一行代码,背后却做了太多..._开始执行自动配置逻辑

推荐文章

热门文章

相关标签