惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
博客园 - 【当耐特】
WordPress大学
WordPress大学
爱范儿
爱范儿
美团技术团队
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
量子位
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
博客园 - 叶小钗
GbyAI
GbyAI
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Full Disclosure
G
Google Developers Blog
D
Docker
T
Tailwind CSS Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
B
Blog
博客园 - 三生石上(FineUI控件)
博客园 - Franky
H
Help Net Security
MyScale Blog
MyScale Blog
U
Unit 42
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog

博客园 - 下里巴人or知己

基于支付宝微信通知的一种个人收款回调方案(转) P2P技术详解(三):P2P技术之STUN、TURN、ICE详解 turn协议的工作原理 iOS捷径(Workflow 2.0)拓展 支付宝 二维码/转账码/生成方式,突破二维码生成数量的限制 支付宝-API接口解析-转账到银行 浅析套接字中SO_REUSEPORT和SO_REUSEADDR的区别 SpringMVC启动过程详解(li) 无感知的热部署切换 这个女生说:弄懂本文前,你所知道的区块链可能都是错的 为什么我们做分布式使用Redis? Java内存模型原理,你真的理解吗? CentOS 7下ElasticSearch集群搭建案例 分布式系统理论进阶 - Raft、Zab Paxos,Raft,Zab一致性协议-Raft篇 P2P 网络核心技术:Gossip 协议 分布式系统Paxos算法 Hacker News的热门排名算法(转) cessss
CentOS 7.4 下搭建 Elasticsearch 6.3 搜索群集
下里巴人or知己 · 2018-11-16 · via 博客园 - 下里巴人or知己

上个月 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                                

系统优化

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           

4. 优化文件句柄数以及用户可用进程数

新版 Elasticsearch 要求其可用的文件句柄至少为 65536,同时要求其进程数限制至少为 2048,可用按照下面的指令进行修改。

分别对应以下两个报错信息:

  1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536];
  2. 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        

插件推荐

下面推荐的前两个插件是 Chrome 插件,便于访问 ES,最后一个 ElasticHD 是 go 语言编写的客户端,一样比较好用。

  1. ElasticSearch Query Builder
  2. ElasticSearch Head
  3. ElasticHD

使用 Kibana

除了其他插件之外,可用使用官方的 kibana 查看操作 Elasticsearch。修改 kibana.ymlelasticsearch.url:http://es-master01:9200 即可使用,更加详细的配置可参考

总结

本文介绍了 CentOS 6.4 搭建 Elasticsearch 6.3 搜索群集的全过程,后续会有相关文章介绍 Elasticsearch 的基本概念以及 Elasticsearch 6.3 的新特性,敬请期待。


转自:https://juejin.im/post/5b44b585e51d45191716e63c