修改limits.cong配置 /etc/security/limits.conf

  • 修改如下

nofile 最大打开文件描述符数

nproc 最大进程数

memlock 最大内存锁定

echo "* soft nofile 65536

  • hard nofile 131072

  • soft nproc 4096

  • hard nproc 4096

  • soft memlock unlimited

  • hard memlock unlimited" >> /etc/security/limits.conf

修改sysctl配置 /etc/sysctl.conf

  • 修改如下

echo “vm.max_map_count = 262145” >> /etc/sysctl.conf

#生效

sysctl -p

修改es占用内存 /opt/es/config/jvm.options

sed -i “s/-Xms1g/-Xms"800m”/g" /opt/es/config/jvm.options

sed -i “s/-Xmx1g/-Xmx"800m”/g" /opt/es/config/jvm.options

开启ES内存锁定 /opt/es/config/elasticsearch.yml

  • 增加如下配置

bootstrap.memory_lock: true

ES配置文件详解


节点类型

  • 主节点

候选主节点的设置方法是设置node.mater为true,默认情况下,node.mater和node.data的值都为true,即该节点既可以做候选主节点也可以做数据节点。由于数据节点承载了数据的操作,负载通常都很高,所以随着集群的扩大,建议将二者分离,设置专用的候选主节点。当我们设置node.data为false,就将节点设置为专用的候选主节点了。

node.master: true

node.data: false

  • 数据节点

数据节点负责数据的存储和相关具体操作,比如CRUD、搜索、聚合。所以,数据节点对机器配置要求比较高,首先需要有足够的磁盘空间来存储数据,其次数据操作对系统CPU、Memory和IO的性能消耗都很大。通常随着集群的扩大,需要增加更多的数据节点来提高可用性。

node.master: false

node.data: true

  • client节点

即不会被选作主节点,也不会存储任何索引数据。该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。

node.master = false

node.data = false

配置集群名称

  • 不同的节点配置同一个cluster.name可组成同一个集群,确保不同的集群使用不同的cluster.name

  • 配置如下 :

cluster.name: es-cluster-test

配置ES节点名称

  • node.name表示集群节点的名称,集群中节点进行区分,如果不配置则默认为主机名

  • 配置如下

node.name: es01

配置ES节点监听地址

  • 如果不配置,默认是监听在127.0.0.1 和 [::1],同时以development的方式启动。

#监听在指定ip上

network.host : 172.17.0.1

#监听在所有ip上

network.host : 0.0.0.0

日志数据路径配置

  • 配置方式

path.data: /opt/data/es

path.logs: /opt/log/es

path:

data: /opt/data/es

logs: /opt/log/es

  • path.data, 可以设置多个目录

path:

logs: /opt/log/es

data:

  • /opt/data/es-A

  • /opt/data/es-B

  • /opt/data/es-C

集群发现配置

  • discovery.seed_hosts 配置方式如下

用于多个集群节点进行发现,组成集群

discovery.seed_hosts: [“192.168.1.10:9300”, “192.168.1.11”, “seeds.mydomain.com”]

discovery.seed_hosts:

  • 192.168.1.10:9300

  • 192.168.1.11

  • seeds.mydomain.com

  • cluster.initial_master_nodes 配置方式如下

用于集群在第一次启动时,指定可以参与选举的主节点列表 (node.master: true)

cluster.initial_master_nodes: [“es01”, “es02”, “es03”]

cluster.initial_master_nodes:

-es01

-es02

-es03

  • discovery.seed_hosts 如果不配置,会自动监听本地回环地址 将本地多个elasticsearch实例加入到集群中。

jvm配置

  • /opt/es/config/jvm.options (一般配置为机器内存大小的一半)

sed -i “s/-Xms1g/-Xms"800m”/g" /opt/es/config/jvm.options

sed -i “s/-Xmx1g/-Xmx"800m”/g" /opt/es/config/jvm.options

配置Elasticsearch(本次测试配置)


es01

cluster.name: es-cluster-test

node.name: es01

path.logs: /opt/log/es

path.data: /opt/data/es

bootstrap.memory_lock: true

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: [“172.16.1.236:9306”, “172.16.1.236:9307”]

cluster.initial_master_nodes: [“es01”, “es02”, “es03”]

es02

cluster.name: es-cluster-test

node.name: es02

path.logs: /opt/log/es

path.data: /opt/data/es

bootstrap.memory_lock: true

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: [“172.16.1.236:9305”, “172.16.1.236:9307”]

cluster.initial_master_nodes: [“es01”, “es02”, “es03”]

es03

cluster.name: es-cluster-test

node.name: es03

path.logs: /opt/log/es

path.data: /opt/data/es

bootstrap.memory_lock: true

network.host: 0.0.0.0

http.port: 9200

transport.tcp.port: 9300

discovery.seed_hosts: [“172.16.1.236:9305”, “172.16.1.236:9306”]

cluster.initial_master_nodes: [“es01”, “es02”, “es03”]

启动Elasticsearch


启动

  • 分别进入不同的容器启动elasticsearch

  • 命令如下

/opt/es/bin/elasticsearch -d

查看容器状况(容器内)

  • 查看集群是否启动成功

[elasticsearch@813bf8515935 /]$ curl localhost:9200/_cat/nodes

172.17.0.7 28 91 9 0.58 0.66 0.90 dilm - es02

172.17.0.6 15 91 5 0.58 0.66 0.90 dilm - es01

172.17.0.8 35 91 13 0.58 0.66 0.90 dilm * es03

  • 查看当前节点

[elasticsearch@813bf8515935 /]$ curl localhost:9200

{

“name” : “es03”,

“cluster_name” : “es-cluster-test”,

“cluster_uuid” : “Syj18FUrR1GdnGzghBIacQ”,

“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”

}

  • 查看节点健康状况

[elasticsearch@813bf8515935 /]$ curl localhost:9200/_cat/health?v

epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent

1605859559 08:05:59 es-cluster-test green 3 3 0 0 0 0 0 0

  •            100.0%
    

查看容器状况(宿主机)

  • 由于使用docker容器安装,因此也可以通过宿主机映射端口访问,本次测试宿主机为windows

开启集群安全验证


修改配置

  • 分别在不同的Es节点修改配置开启安全验证

echo “xpack.security.enabled: true” >> /opt/es/config/elasticsearch.yml

echo “xpack.security.transport.ssl.enabled: true” >> /opt/es/config/elasticsearch.yml

生成证书

  • 选择其中一个节点生成CA证书,默认情况下生成证书放在 /opt/es

#创建ca证书 /opt/es/bin/elasticsearch-certutil ca -v

[elasticsearch@c824e845075b es]$ /opt/es/bin/elasticsearch-certutil ca -v

This tool assists you in the generation of X.509 certificates and certificate

signing requests for use with SSL/TLS in the Elastic stack.

The ‘ca’ mode generates a new ‘certificate authority’

This will create a new X.509 certificate and private key that can be used

to sign certificate when running in ‘cert’ mode.

Use the ‘ca-dn’ option if you wish to configure the ‘distinguished name’

of the certificate authority

By default the ‘ca’ mode produces a single PKCS#12 output file which holds:

  • The CA certificate

  • The CA’s private key

If you elect to generate PEM format certificates (the -pem option), then the output will

be a zip file containing individual files for the CA certificate and private key

Please enter the desired output file [elastic-stack-ca.p12]: #输入回车,使用默认

Enter password for elastic-stack-ca.p12 : #回车,暂不输入密码

  • 与上一步骤同一个节点创建节点见认证用的证书

#创建节点间证书 /opt/es/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

[elasticsearch@c824e845075b es]$ /opt/es/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

This tool assists you in the generation of X.509 certificates and certificate

signing requests for use with SSL/TLS in the Elastic stack.

The ‘cert’ mode generates X.509 certificate and private keys.

  • By default, this generates a single certificate and key for use

on a single instance.

  • The ‘-multiple’ option will prompt you to enter details for multiple

instances and will generate a certificate and key for each one

  • The ‘-in’ option allows for the certificate generation to be automated by describing

the details of each instance in a YAML file

  • An instance is any piece of the Elastic Stack that requires an SSL certificate.

Depending on your configuration, Elasticsearch, Logstash, Kibana, and Beats

may all require a certificate and private key.
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

[外链图片转存中…(img-NW8ByM3i-1712571749826)]

[外链图片转存中…(img-Tqn4RG3E-1712571749826)]

[外链图片转存中…(img-54Go2M4x-1712571749826)]

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐