CentOS 7.4 下搭建 Elasticsearch 6.3 搜索群集
上个月 13 号,Elasticsearch 6.3 如约而至,该版本和以往版本相比,新增了很多新功能,其中最令人瞩目的莫过于集成了 X-Pack 模块
。而在最新的 X-Pack 中 Elasticsearch SQL 已经可用
,虽然还处于实验阶段,但是相对于编写复杂的 DSL 查询语句,SQL 语句还是更加亲民,更易于上手。
想体验新版 Elasticsearch 6.3 的新功能,当然要先搭建一个新版本的搜索集群,本文将逐步介绍:如何在阿里云的三台 CentOS 7.4 云主机上搭建 Elasticsearch 6.3 搜索集群
。
角色分配
目前有三台云主机,为了实现高可用,则至少需要 2 个主节点
(Master Node),当然由于只有三台主机,所以每一台都需要充当数据节点
(Data Node)。
主机名 | 内网IP | 公网IP | 角色 | http服务 |
---|---|---|---|---|
es-master01 | 172.16.14.85 | 39.104.186.15 | master & data | enable |
es-master02 | 172.16.14.86 | 39.104.95.206 | master & data | disable |
es-data01 | 172.16.14.87 | 39.104.179.119 | data | disable |
挂载数据盘
常规情况下,在购买阿里云主机搭建 Elasticsearch 搜索集群时都会购买一个单独的数据盘来存储索引数据,因此首先需要将购买的数据盘进行挂载。详细的挂载流程可用参考阿里的官方教程,下面只贴出用到的命令:
fdisk -l # 查看可用数据盘
fdisk /dev/vdb # 输入:n>>p>>enter>>enter>>wq
fdisk -l # 验证数据盘
mkfs.ext3 /dev/vdb1 # 格式化
cp /etc/fstab /etc/fstab.bak # 备份 fstab 文件
echo /dev/vdb1 /data ext3 defaults 0 0 >> /etc/fstab
mkdir /data # 创建数据目录
mount /dev/vdb1 /data # 挂载数据盘到数据目录
df -h # 验证挂载
复制代码
系统优化
1. 修改主机名以及 Hosts
按照角色修改主机的主机名,便于区分,同时为了便于节点间通信,需要修改主机的 Hosts。
vi /etc/hostname #修改主机名
vi /etc/hosts #修改hosts
172.16.14.85 es-master01
172.16.14.86 es-master02
172.16.14.87 es-data01
复制代码
2. 创建ES用户
由于 Elasticsearch 不允许也不推荐使用 root 用户来运行
,因此需要新建一个用户来启动 Elasticsearch。
adduser elastic #创建elastic用户
passwd elastic #修改elastic密码
复制代码
3. 创建ES数据日志文件夹
将 Elasticsearch 的数据文件和日志目录设置到数据盘。
cd /data/
mkdir elastic
cd elastic
mkdir data #创建数据目录
mkdir log #创建日志目录
mkdir bak #创建备份目录
chown -R elatic /data/elastic/ #修改 /data/elastic/ 目录拥有者为 elastic
复制代码
4. 优化文件句柄数以及用户可用进程数
新版 Elasticsearch 要求其可用的文件句柄至少为 65536,同时要求其进程数限制至少为 2048,可用按照下面的指令进行修改。
分别对应以下两个报错信息:
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536];
- max number of threads [1024] for user [es] is too low, increase to at least [2048]。
vim /etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
* soft nproc 4096
* hard nproc 8192
elastic soft memlock unlimited
elastic hard memlock unlimited
复制代码
5. 修改内核交换
为了避免不必要的磁盘和内存交换,影响效率,需要将 vm.swappiness
修改为 1。
此外需要修改最大虚拟内存 vm.max_map_count
防止启动时报错:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]。
vim /etc/sysctl.conf
vm.swappiness = 1
vm.max_map_count = 655360
sysctl -p # 立即生效
复制代码
6. 关闭swap
swapoff -a
复制代码
7. 重启使得配置生效
reboot
复制代码
下载解压文件
下载 Java、Elasticsearch 和 Kibana 安装包,并解压到 /opt/soft/
目录,最后修改 elasticsearch-6.3.0
以及 kibana-6.3.0
的拥有者为 elastic
。
mkdir /opt/downloads/
mkdir /opt/soft/
cd /opt/downloads/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz
wget http://download.oracle.com/otn/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
tar -zxvf elasticsearch-6.3.0.tar.gz -C /opt/soft/
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/soft/
tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz -C /opt/soft/
chown -R elastic /opt/soft/elasticsearch-6.3.0/
chown -R elastic /opt/soft/kibana-6.3.0/
复制代码
配置 Java 运行环境
su elastic #切换到 elastic 用户
vim ~/.bash_profile #只修改 elastic 用户自己的环境变量
export JAVA_HOME=/opt/soft/jdk1.8.0_162
export JRE_HOME=/opt/soft/jdk1.8.0_162/jre
export CLASSPATH=.:/opt/soft/jdk1.8.0_162/lib:/opt/soft/jdk1.8.0_162/jre/lib
export PATH=$PATH:/opt/soft/jdk1.8.0_162/bin:/opt/soft/jdk1.8.0_162/jre/bin
复制代码
配置 Elasticsearch 内存占用
配置 jvm 最大堆和最小堆,一般为服务器物理内存的一半,最大不超过 32g。
cd /opt/soft/elasticsearch-6.3.0/config/
vim jvm.options
-Xms2g
-Xmx2g
复制代码
配置 Elasticsearch
按照下列模板修改 elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
#
# ---------------------------------- Cluster -----------------------------------
#es 集群名称
cluster.name: es-cluster
#当前节点名称
node.name: es-mater01
#配置角色为:主节点和数据节点
node.master: true
node.data: true
#配置数据路径和日志路径
path.data: /data/elastic/data
path.logs: /data/elastic/log
#开启内存锁定
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
# ---------------------------------- Network -----------------------------------
#设置节点间通讯IP,这里设置为0.0.0.0主要时兼顾内网节点间通讯,同时方便外网开发人员进行调试
network.bind_host: 0.0.0.0
#设置9200通讯IP,一般设置为外网IP
network.publish_host: 39.104.186.15
#设置HTTP通讯端口
http.port: 9200
#设置HTTP开启状态
http.enabled: true
#设置运行跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
http.max_content_length: 500mb
# --------------------------------- Discovery ----------------------------------
#设置zen发现范围,此处可用换为主机名:["es-master01", "es-master02", "es-data01"]
discovery.zen.ping.unicast.hosts: ["172.16.14.85", "172.16.14.86", "172.16.14.87"]
#discovery.zen.ping.multicast.enabled: false
discovery.zen.no_master_block: write
discovery.zen.fd.ping_timeout: 10s
#设置最小主节点个数,一般为:(master_node_count+1)/2
discovery.zen.minimum_master_nodes: 2
# ---------------------------------- Gateway -----------------------------------
#设置在有2个节点后进行数据恢复
gateway.recover_after_nodes: 2
gateway.expected_nodes: 3
gateway.recover_after_time: 1m
#
# ---------------------------------- Various -----------------------------------
#禁止通配符模式删除索引
action.destructive_requires_name: true
#indices.cluster.send_refresh_mapping: false
indices.recovery.max_bytes_per_sec: 200mb
indices.memory.index_buffer_size: 20%
#script.inline: true
#script.indexed: true
#关闭xpack的安全校验
xpack.security.enabled: false
复制代码
插件推荐
下面推荐的前两个插件是 Chrome 插件,便于访问 ES,最后一个 ElasticHD
是 go 语言编写的客户端,一样比较好用。
使用 Kibana
除了其他插件之外,可用使用官方的 kibana 查看操作 Elasticsearch。修改 kibana.yml
中 elasticsearch.url:http://es-master01:9200
即可使用,更加详细的配置可参考。
总结
本文介绍了 CentOS 6.4 搭建 Elasticsearch 6.3 搜索群集的全过程,后续会有相关文章介绍 Elasticsearch 的基本概念以及 Elasticsearch 6.3 的新特性,敬请期待。
转自:https://juejin.im/post/5b44b585e51d45191716e63c
CentOS 7.4 下搭建 Elasticsearch 6.3 搜索群集的更多相关文章
- centos 7( linux )下搭建elasticsearch踩坑记
原文:https://blog.csdn.net/an88411980/article/details/83150380 概述 公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...
- CentOS 6.2下搭建Web服务器
1Centos 6.2下搭建web服务器 如今,Linux在Web应用越来越广,许多企业都采用Linux来搭建Web服务器,这样即节省了购买正版软件的费用,而且还能够提高服务器的安全性. 之前我们介绍 ...
- CentOS 6.3下搭建Web服务器
准备前的工作: 1.修改selinux配置文件(/etc/sysconfig/selinux) 关闭防火墙 (1)把SELINUX=enforcing注释掉 (2)并添加SELINUX=disable ...
- CentOS 6.5 下搭建FastDFS服务
参考网站: http://www.open-open.com/lib/view/open1435468300700.html http://blog.csdn.net/lynnlovemin/arti ...
- 手把手教你在CentOS 7.4下搭建Zabbix监控(转)
Linux系统版本:CentOS 7.4 1.安装前需要先关闭selinux和firewall. 1.1 [root@zabbix ~]# vi /etc/selinux/config 将SELINU ...
- CentOS 6.5 下安装 Elasticsearch 5
安装最新的 Elasticsearch 5 需要Java 8.所有先要确定环境中是否有Java 8.如果没有则需要安装. 1. 安装Java 8 首先使用 yum list installed | g ...
- CentOS 6.5 下搭建vsftp服务
参考网站: http://blog.163.com/sunshine_linting/blog/static/44893323201391010522601/ http://blog.sina.com ...
- Linux系统:centos7下搭建ElasticSearch中间件,常用接口演示
本文源码:GitHub·点这里 || GitEE·点这里 一.中间件简介 1.基础概念 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于R ...
- CentOS 6.5下搭建LAMP环境详细步骤
1.确认搭建LAMP所需的环境是否已经安装: [root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl li ...
随机推荐
- 我的arcgis培训照片7
来自:http://www.cioiot.com/successview-553-1.html
- 程序猿Web面试之JSON
JSON是什么? JSON(JavaScript对象表示法), 是在网络通信下.经常使用的一种数据表达格式,它有助于我们于一个自描写叙述的,独立的和轻的方式呈现并交换数据. 这些数据能够易于和转 ...
- SVN的配置与使用方法
1.所选服务器安装包:VisualSVN-Server-2.1.3.msi. 2.客户端安装包:TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi 一.服务器的安装 ...
- MySQL 高可用架构在业务层面的分析研究
)读多写少 虚线表示跨机房部署,比方电子商务系统.一个Master既有读也有些写.对读数据一致性须要比較重要的.读要放在Master上面. M(R)仅仅是一个备库.仅仅有M(WR)挂了之后,才会切换到 ...
- makefile中的一点知识
makefile文件里以下这一部分展开是什么样的呢? .. . mytarget=foo $(mytarget): $(mytarget).c gcc -o $(mytarget) $ ...
- Zabbix 监控服务器
Zabbix 操作系统 :CentOS7.5 两台服务器: server端:192.168.206.6 client 端: 192.168.206.3 zabbix : 4.0 mariiadb : ...
- 通过构建Cocoapods私有库进行组件化开发探索
专题一 一.创建私有索引库 选Github或者码云都可以,本例以Github为例.创建私有索引库用来作为自己组件库的索引: 二.本地添加私有索引库 添加:pod repo add 索引库名称 索引库地 ...
- 我在CSDN开通博客啦!
今天,我最终在CSDN开通博客啦!
- 2014阿里巴巴WEB前端实习生在线笔试题
2014年3月31日晚,我怀着稍微忐忑的心情(第一次在线笔试^_^!!)进行了笔试.阿里巴巴的笔试题共同拥有10道,差点儿包括了Web前端开发的各个方面,有程序题.有叙述题.时间很紧张,仅仅完毕了大概 ...
- 图像处理之基础---yuv420及其rgb,bayer, yuv, RGB的相互转换详解
YUV格式解析1(播放器——project2) 根据板卡api设计实现yuv420格式的视频播放器 打开*.mp4;*.264类型的文件,实现其播放. 使用的视频格式是YUV420格式 YUV格式 ...