环境
Linux系统:Centos7
Java版本:JDK1.8
2台服务器部署结构
hostname | tomas1 | hadoopSvr3 |
---|---|---|
IP | 10.62.124.25 | 10.62.124.43 |
ES | ES | ES |
一、前提
1、JDK版本要求1.8及以上;
2、ES不能以root用户身份运行 确保运行用户对各使用到的目录的权限;
2.1、创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p elsearch
passwd elsearch
输入密码(elsearch)后一直按回车即可,最后输入y确定。
2.2、更改安装目录elasticsearch-6.6.1及内部文件的所属用户及组为elsearch:elsearch
cd /usr/local/
chown -R elsearch:elsearch hadoop
更改保存ES数据和log等数据目录所属用户及祖为elsearch:elsearch
cd /data
chown -R elsearch:elsearch elastic
3、配置操作系统vm.max_map_count参数,请使用root用户登录系统,执行如下命令
sysctl -w vm.max_map_count=655360
注:vm.max_map_count参数的值至少要设置大于等于262144
查看修改是否生效
[root@es1 hadoop]# more /proc/sys/vm/max_map_count
655360
上述方法修改后,如果服务器重启将失效,永久修改方法:
在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
4、修改单个进程可打开的最大文件句柄数限制
在root用户下,在/etc/security/limits.conf文件中增加如下几行
elsearch soft nofile 655360
elsearch hard nofile 655360
elsearch soft nproc 65536
elsearch hard nproc 65536
重启系统生效。
二、安装ES
切换到elsearch用户,如下操作均在该用户下执行
1、目录规划
/data
|__ elastic
|__ elasticsearch
|__ config
|__ data
|__ logs
2、下载ES安装包
官网下载地址:https://www.elastic.co/downloads/elasticsearch
(以版本elasticsearch-6.6.1.tar.gz为示例)
3、将安装包放到/usr/local/hadoop目录,解压缩安装包
cd /usr/local/hadoop
tar zxvf elasticsearch-6.6.1.tar.gz
mv elasticsearch-6.6.1 elasticsearch
三、配置
配置文件说明
elasticsearch.yml #ES基本配置文件
jvm.options #Jvm参数配置文件
log4j2.properties #Log4j配置文件
3.1、配置文件分离
配置文件目录默认为:$ES_HOME/config,如果需要配置文件与软件分离(方便升级),可以通过 ES_PATH_CONF 环境变量来指定:
vi ~/.bashrc
打开后,在文档最下方添加如下配置:
export ES_HOME=/usr/local/hadoop/elasticsearch
export ES_PATH_CONF=/data/elastic/elasticsearch/config
:wq!保存退出,执行如下命令,使更改生效
source ~/.bashrc
也可以在启动命令行中通过参数指定声明
3.2、配置elasticsearch.yml
3.2.1、Cluster配置,所属的集群名,默认为 elasticsearch ,可自定义
cluster.name: ES-cluster
3.2.2、Node配置,节点名,默认为 UUID前7个字符,可自定义
node.name: ${HOSTNAME}
(以主机名作节点名)
3.2.3、Paths配置,数据目录和日志目录,生产环境下应与软件分离
path.data: /data/elastic/elasticsearch/data
path.logs: /data/elastic/elasticsearch/logs
3.2.4、Network配置
#network.host IP绑定
默认绑定的是[“127.0.0.1”, “[::1]”]回环地址,集群下要服务间通信,需绑定一个ipv4或ipv6地址
network.host: 10.62.124.25
#http.port: 9200
对外服务的http 端口, 默认 9200-9300 。可以为它指定一个值或一个区间,当为区间时会取用区间第一个可用的端口。
3.2.5、Discovery配置,Discovery Config 节点发现配置
ES中默认采用的节点发现方式是 zen(基于组播(多播)、单播)。在应用于生产前有两个重要参数需配置:
discovery.zen.ping.unicast.hosts: [“host1”,“host2:port”,“host3[portX-portY]”] 单播模式下,设置具有master资格的节点列表,新加入的节点向这个列表中的节点发送请求来加入集群
discovery.zen.minimum_master_nodes: 1 这个参数控制的是,一个节点需要看到具有master资格的节点的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping.unicast.hosts: [“10.62.124.25”, “10.62.124.43”]
discovery.zen.minimum_master_nodes: 2
3.3、配置jvm.options
3.3.1、Jvm heap 大小设置
生产环境中一定要在jvm.options中调大它的jvm内存:
-Xms125g
-Xmx125g
注:确保heap size至少是系统可用总内存的一半
3.3.2、JVM heap dump path 设置
生产环境中指定当发生OOM异常时,heap的dump path,好分析问题。在jvm.options中配置:
-XX:HeapDumpPath=/data/elastic/elasticsearch
四、启动集群
#切换到elsearch用户
su elsearch
cd /usr/local/elasticsearch-6.6.1
./bin/elasticsearch -d
五、检查ES是否安装成功
Elasticsearch直接听过了http接口,所以直接使用curl命令或者浏览器就可以查看到一些集群相关的信息。
打开浏览器,输入地址 http://10.62.124.25:9200 出现以下内容则表示安装成功
{
"name" : "tomas1",
"cluster_name" : "ES-cluster",
"cluster_uuid" : "1zFScgM8RhyweQAsOGgiPQ",
"version" : {
"number" : "6.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "1fd8f69",
"build_date" : "2019-02-13T17:10:04.160291Z",
"build_snapshot" : false,
"lucene_version" : "7.6.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
查看集群信息,浏览器地址栏输入地址:http://10.62.124.25:9200/_cat/nodes?pretty,回车,输出内容如下
10.62.124.43 14 98 1 0.11 0.40 0.27 mdi - hadoopSvr3
10.62.124.25 12 38 3 0.09 0.66 1.14 mdi * tomas1 # *号表示为当前节点为主节点的意思
如果你要想查看更多有关于集群信息、当前节点统计信息等等,可以使用一下命令来获取到所有可以查看的信息。
curl -XGET 'http://0.62.124.25:9200/_cat?pretty'
参考:
https://www.cnblogs.com/leeSmall/p/9189078.html
https://www.cnblogs.com/leeSmall/p/9220535.html