|NO.Z.00003|——————————|Deployment|——|Hadoop&ElasticSearch集中式日志分析系统.v03|——|Elasticsearch.v03|ElasticSearch集群部署.V1|
一、Elasticsearch 集群环境准备
### --- hadoop01~03修改系统配置:修改/etc/sysctl.conf
~~~ # 修改/etc/sysctl.conf
[root@hadoop01 ~]# vim /etc/sysctl.conf
~~~在文件末尾添加如下参数
vm.max_map_count=655360
~~~ # 执行sysctl -p 让其生效
[root@hadoop01 ~]# sysctl -p
### --- 修改/etc/security/limits.conf
~~~ # 修改linux系统对文件描述符的限制级别
[root@hadoop01 ~]# vim /etc/security/limits.conf
~~~ # 在文件末尾添加如下参数
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
### --- 准备工作:创建es用户
~~~ # hadoop01~03创建es用户(必须),因为es不能用root用户启动
[root@hadoop01 ~]# useradd es
[root@hadoop01 ~]# passwd es
New password:123456
~~~ # hadoop01~03使用root用户执行visudo然后为es用户添加权限
[root@hadoop01 ~]# vim /etc/sudoers
~~~ # 第101行添加如下内容
es ALL=(ALL) ALL
### --- 使用root用户创建工作目录
~~~ # hadoop01~03创建es环境目录
[root@hadoop01 ~]# mkdir -p /opt/yanqi/servers/es
[root@hadoop01 ~]# mkdir -p /opt/yanqi/servers/es/data/es
[root@hadoop01 ~]# mkdir -p /opt/yanqi/servers/es/logs/es
[root@hadoop01 ~]# chown -R es /opt/yanqi/servers/es
[root@hadoop01 ~]# chown -R es /opt/yanqi/servers/es/data/es
[root@hadoop01 ~]# chown -R es /opt/yanqi/servers/es/logs/es
二、elasticsearch分布式部署:Hadoop01
### --- 分布式安装部署:# 使用es用户连接服务器
~~~ # hadoop01解压版本包
[es@hadoop01 software]$ tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz -C ../servers/es/
~~~ # 修改版本包名称
[es@hadoop01 ~]$ mv /opt/yanqi/servers/es/elasticsearch-7.3.0/ /opt/yanqi/servers/es/elasticsearch
### --- 修改配置文件:elasticsearch.yml配置文件说明:
~~~ # hadoop01下修改es配置文件参数:
[es@hadoop01 ~]$ vim /opt/yanqi/servers/es/elasticsearch/config/elasticsearch.yml
~~~ 第17行:集群名字
cluster.name: myes
~~~ 第23行:集群中当前的节点
node.name: hadoop01
~~~ 第33行:数据目录
path.data: /opt/yanqi/servers/es/data/es
~~~ 第37行:日志目录
path.logs: /opt/yanqi/servers/es/logs/es
~~~ 第55/59行:当前主机的ip地址:ECS使用内网地址
network.host: hadoop01
http.port: 9200
~~~ 第72行:初始化一个新的集群时需要此配置来选举master:ECS使用内网地址
cluster.initial_master_nodes: ["hadoop01","hadoop02","hadoop03"]
~~~ 第68行:写入候选主节点的设备地址
discovery.seed_hosts: ["hadoop01","hadoop02","hadoop03"]
~~~ 第89/90行:行尾添加: 跨域,适用于所有域名
http.cors.enabled: true
http.cors.allow-origin: "*"
### --- 安装包分发到其他两台机器上
~~~ # hadoop01节点发送es版本包到其它主机
[es@hadoop01 ~]$ cd /opt/yanqi/servers/es/
[es@hadoop01 es]$ scp -r elasticsearch/ hadoop02:$PWD
[es@hadoop01 es]$ scp -r elasticsearch/ hadoop03:$PWD
三、elasticsearch分布式部署:Hadoop02/hadoop03
### --- hadoop02主机修改elasticsearch.yaml
~~~ # hadoop02主机修改elasticsearch.yaml配置文件
[es@hadoop02 ~]$ vim /opt/yanqi/servers/es/elasticsearch/config/elasticsearch.yml
~~~ 第17行:集群名字
cluster.name: myes
~~~ 第23行:集群中当前的节点
node.name: hadoop02
~~~ 第33行:数据目录
path.data: /opt/yanqi/servers/es/data/es
~~~ 第37行:日志目录
path.logs: /opt/yanqi/servers/es/logs/es
~~~ 第55/59行:当前主机的ip地址
network.host: hadoop02
http.port: 9200
~~~ 第72行:初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["hadoop01","hadoop02","hadoop03"]
~~~ 第68行:写入候选主节点的设备地址
discovery.seed_hosts: ["hadoop01","hadoop02","hadoop03"]
~~~ 第89/90行:行尾添加: 跨域,适用于所有域名
http.cors.enabled: true
http.cors.allow-origin: "*"
### --- hadoop03主机修改elasticsearch.yaml
~~~ # hadoop03主机修改elasticsearch.yaml配置文件
[es@hadoop03 ~]$ vim /opt/yanqi/servers/es/elasticsearch/config/elasticsearch.yml
~~~ 第17行:集群名字
17 cluster.name: myes
~~~ 第23行:集群中当前的节点
23 node.name: hadoop03
~~~ 第33行:数据目录
33 path.data: /opt/yanqi/servers/es/data/es
~~~ 第37行:日志目录
37 path.logs: /opt/yanqi/servers/es/logs/es
~~~ 第55/59行:当前主机的ip地址
55 network.host: hadoop03
59 http.port: 9200
~~~ 第72行:初始化一个新的集群时需要此配置来选举master
72 cluster.initial_master_nodes: ["hadoop01","hadoop02","hadoop03"]
~~~ 第68行:写入候选主节点的设备地址
68 discovery.seed_hosts: ["hadoop01","hadoop02","hadoop03"]
~~~ 第89/90行:行尾添加: 跨域,适用于所有域名
89 http.cors.enabled: true
90 http.cors.allow-origin: "*"
四、修改jvm内存参数大小
### --- hadoop01~03修改jvm内存大小
[es@hadoop01 ~]$ vim /opt/yanqi/servers/es/elasticsearch/config/jvm.options
~~~ 第22~23行:修改内存
-Xms2g
-Xmx2g
五、启动es服务
### --- 启动es服务
~~~ # hadoop01~03:后台启动es服务,要发现错误的话,去/opt/yanqi/servers/logs/es目录下查看。
[es@hadoop01 ~]$ nohup /opt/yanqi/servers/es/elasticsearch/bin/elasticsearch >/dev/null 2>&1 &
~~~ # 查看es服务进程
[es@hadoop01 ~]$ jps
1500 Elasticsearch
[es@hadoop01 ~]$ ps -ef | grep 1500
es 1500 1279 8 14:49 pts/1 00:00:37 /opt/yanqi/servers/jdk1.8.0_231/bin/java -Xms512m -Xmx512m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch-7630453916949373570 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Dio.netty.allocator.type=unpooled -XX:MaxDirectMemorySize=268435456 -Des.path.home=/opt/yanqi/servers/es/elasticsearch -Des.path.conf=/opt/yanqi/servers/es/elasticsearch/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /opt/yanqi/servers/es/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch
es 1570 1500 0 14:49 pts/1 00:00:00 /opt/yanqi/servers/es/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
### --- 访问es服务
~~~ # http://hadoop01:9200/?pretty ;pretty:格式化的,漂亮的。
~~~ # UI.输出参数
{
"name" : "hadoop01",
"cluster_name" : "myes",
"cluster_uuid" : "dkCOn-auSUCJH42iBUSO1w",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
~~~ # http://hadoop02:9200/?pretty ;pretty:格式化的,漂亮的。
~~~ # UI.输出参数
{
"name" : "hadoop02",
"cluster_name" : "myes",
"cluster_uuid" : "dkCOn-auSUCJH42iBUSO1w",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
~~~ # http://hadoop03:9200/?pretty ;pretty:格式化的,漂亮的。
~~~ # UI.输出参数
{
"name" : "hadoop03",
"cluster_name" : "myes",
"cluster_uuid" : "dkCOn-auSUCJH42iBUSO1w",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
附录一:elasticsearch.yml配置文件说明:
配置项 | 作用 |
cluster.name | 集群名称,相同名称为一个集群 |
node.name | 节点名称,集群模式下每个节点名称唯一 |
node.master | 当前节点是否可以被选举为master节点,是:true、否:false |
node.data | 当前节点是否用于存储数据,是:true、否:false |
path.data | 索引数据存放的位置 |
path.logs | 日志文件存放的位置 |
bootstrap.memory_lock | 需求锁住物理内存,是:true、否:false |
network.host | 监听地址,用于访问该es |
http.port | es对外提供的http端口,默认 9200 |
transport.port | 节点选举的通信端口 默认是9300 |
discovery.seed_hosts | es7.x 之后新增的配置, 写入候选主节点的设备地址,在开启服务后可以被选为主节点 |
cluster.initial_master_nodes | es7.x 之后新增的配置, 初始化一个新的集群时需要此配置来选举master |
http.cors.enabled | 是否支持跨域,是:true,在使用head插件时需要此配置 |
http.cors.allow-origin "" | 表示支持所有域名 |
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
dov006-elk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」