|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
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
