搭建Elasticsearch集群常见问题
一、ES安装方法:
Linux用户登录(bae),我们用的是5.3版本的包。从官网下载:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
解压后,进入到bin目录下,使用 ./elasticsearch 命令启动,看到如下的提示,即为启动成功。端口号9200.

二、ES单节点部署遇到的问题
1.记住不要在root下启动,否则会报错:can not run elasticsearch as root
2.如果是在root下下载的elasticsearch,可能会报下面的错误:
main ERROR Could not register mbeans Java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
【解决】:改变elasticsearch文件夹所有者到当前用户
sudo chown -R bae:bae elasticsearch
3. jdk的版本要在1.8以上
4.错误:
ERROR: bootstrap checks failed
max file descriptors [10240] for elasticsearch process is too low, increase to at least [65536]
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2017-05-09T21:34:03,914][INFO ][o.e.n.Node ] [m1-hic-ssd-bae03] stopping ...
[2017-05-09T21:34:03,946][INFO ][o.e.n.Node ] [m1-hic-ssd-bae03] stopped
[2017-05-09T21:34:03,946][INFO ][o.e.n.Node ] [m1-hic-ssd-bae03] closing ...
[2017-05-09T21:34:03,960][INFO ][o.e.n.Node ] [m1-hic-ssd-bae03] closed
【解决方法】:
切换到root用户, vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
#下面的work是用户名,用哪个用户启动es,就配置成对应的用户名
work soft memlock unlimitedwork hard memlock unlimitedvi /etc/security/limits.d/90-nproc.conf
修改如下内容: * soft nproc 1024
#修改为 * soft nproc 2048
vi /etc/sysctl.conf
添加下面配置:vm.max_map_count=655360
并执行命令: sysctl -p
执行上述sysctl -p命令可能会遇到如下错误:
net.ipv4.ip_forward =
net.ipv4.conf.default.rp_filter =
net.ipv4.conf.default.accept_source_route =
kernel.sysrq =
kernel.core_uses_pid =
net.ipv4.tcp_syncookies =
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb =
kernel.msgmax =
kernel.shmmax =
kernel.shmall =
错误的原因是3个bridge模块未加载。可以先执行命令,
modprobe bridge
然后再执行sysctl -p命令
重启elasticsearch。此处备注一下es的启动,可以在bin目录下直接执行./elasticsearch,但是有一个问题,终端关闭之后,elasticsearch这个进程就被杀掉了。此时,可以使用如下命令启动
nohup ./elasticsearch &
5. 报错:
ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
【解决】:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
【错误原因】:
这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
三、ES集群配置
多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点。Zen发现是ES自带的默认发现机制,使用多播发现其它节点。只要启动一个新的ES节点并设置和集群相同的名称这个节点就会被加入到集群中。
Elasticsearch集群中有的节点一般有三种角色:master node、data node和client node。
- master node:master几点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。
- data node:data 节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源;
- client node:client 节点起到路由请求的作用,实际上可以看做负载均衡器。
我们选m1这台机器作为client node,elasticsearch.yml中的配置如下:
cluster.name: mkt-es-cluster
node.name: ${HOSTNAME}
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["10.**.**.**"]
在m2上配置elasticsearch.yml:
cluster.name: mkt-es-cluster
node.name: ${HOSTNAME}
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["10.**.**.**"]
我们在任意一台机器上请求:curl 'localhost:9200/_cat/health?v'

我们可以看到,标志着集群状态的status显示为green,节点个数为2个。
四、安装中文分词器ik
1.下载安装包https://github.com/medcl/elasticsearch-analysis-ik/releases
有针对不同es版本的安装包,需要下载与所安装的es版本匹配的安装包。我们还是用5.3.0版本.zip格式的好了。
2.在elasticsearch/plugins目录下新建ik目录,将zip包拷贝到ik目录下,解压。
3.重启elasticsearch
4.注意事项:如果是搭建的集群,需要在每个节点下都安装ik
5.调用下面的url
GET _analyze
{
"analyzer":"ik_max_word",
"text":"中华人民共和国国歌"
}
会得到下面结果:
{
"tokens": [
{
"token": "中华人民共和国",
"start_offset": 0,
"end_offset": 7,
"type": "CN_WORD",
"position": 0
},
{
"token": "中华人民",
"start_offset": 0,
"end_offset": 4,
"type": "CN_WORD",
"position": 1
},
{
"token": "中华",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 2
},
{
"token": "华人",
"start_offset": 1,
"end_offset": 3,
"type": "CN_WORD",
"position": 3
},
{
"token": "人民共和国",
"start_offset": 2,
"end_offset": 7,
"type": "CN_WORD",
"position": 4
},
{
"token": "人民",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 5
},
{
"token": "共和国",
"start_offset": 4,
"end_offset": 7,
"type": "CN_WORD",
"position": 6
},
{
"token": "共和",
"start_offset": 4,
"end_offset": 6,
"type": "CN_WORD",
"position": 7
},
{
"token": "国",
"start_offset": 6,
"end_offset": 7,
"type": "CN_CHAR",
"position": 8
},
{
"token": "国歌",
"start_offset": 7,
"end_offset": 9,
"type": "CN_WORD",
"position": 9
}
]
}
或者通过postman采用这种方式:hz01-bae3-rdtest00.hz01.baidu.com:8920/_analyze?analyzer=ik_max_word&text= 我是好人

五、kibana挂掉了
问题表现:请求es机器集群信息:http://*******.com:8920/_cluster/health?pretty
![]()
但是kibana上面status确实red,重启都不行。显示如下:

先恢复一下数据吧,参照下面链接:
https://stackoverflow.com/questions/42376101/getting-plugin-is-red-error-when-launching-kibana

删掉es的每个节点下data/es/ 里面的所有数据,重启每个节点。就ok了。
具体原因参考下面链接:(其实就是我不知道怎么的吧.kibana这个索引删掉了)
https://stackoverflow.com/questions/31201051/elasticsearch-is-still-initializing-the-kibana-index

搭建Elasticsearch集群常见问题的更多相关文章
- 使用Docker搭建Elasticsearch集群环境
本篇文章首发于头条号单机如何搭建Elasticsearch集群?使用容器技术快速构建集群环境,欢迎关注头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_te ...
- 基于docker搭建elasticsearch集群
es集群的搭建 - 基于单机搭建elasticsearch集群见官网 https://www.elastic.co/guide/en/elasticsearch/reference/current/d ...
- Windows10 搭建 ElasticSearch 集群服务
一.前言 集群的搭建需要多台机器,之前我使用 ubuntu 16.04 搭建过 hadoop 的单机模式和分布式模式,这个今后会写,今天先写一篇使用 < Windows10 搭建 Elastic ...
- Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...
- 在centos7使用docker下搭建elasticsearch集群
一 .docker的安装 https://www.cnblogs.com/ghostdot/p/12410242.html 二.创建相关映射文件 cd /home/ mkdir node cd nod ...
- 使用 Elastic 技术栈构建 K8S 全栈监控 -1:搭建 ElasticSearch 集群环境
文章转载自:https://www.qikqiak.com/post/k8s-monitor-use-elastic-stack-1/ 操作步骤 kubectl create ns elastic k ...
- CentOS7搭建elasticsearch集群
准备三个节点,系统版本为CentOS7.3. 11.0.10.18 es01 11.0.10.19 es02 11.0.10.20 es03 1.安装java环境 # yum install -y j ...
- Windows下搭建elasticsearch集群案例
https://blog.csdn.net/u014236259/article/details/64129918
- 手把手教你搭建一个Elasticsearch集群
一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个 ...
随机推荐
- 日历上添加活动通知(Asp.net)
<div id="calendar_contain"> </div> <script language="javascript" ...
- 初识ElasticSearch
概述 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 分布式的 ...
- 详谈 Unity3D AssetBundle 资源加载,结合实际项目开发实例
第一次搞资源更新方面,这里只说更新,加载,AssetBundle资源加载,谈谈自己的理解,以及自己在项目中遇到的那些神坑,现在回想一下,真的是自己跪着过来的,说多了,都是泪. 我这边是安卓AssetB ...
- HDU 2846 Trie查询
给出若干模式串,再给出若干询问串,求每个询问串作为多少个模式串的子串出现. 如果一个串是另一个串的子串,则一定是另一个串某个前缀的后缀或者某个后缀的前缀.根据字典树的性质,将模式串的每一个后缀插入字典 ...
- Native App和Web App 的差异
开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP:一种是基于高端机的浏览器运行的WebApp,本文将主要讲解后者. WebApp与Native App有何区别呢 ...
- Mahout源码分析:并行化FP-Growth算法
FP-Growth是一种常被用来进行关联分析,挖掘频繁项的算法.与Aprior算法相比,FP-Growth算法采用前缀树的形式来表征数据,减少了扫描事务数据库的次数,通过递归地生成条件FP-tree来 ...
- HNOI2017 滚粗记
这次HNOI,感觉自己收获了很多啊,高一的蒟蒻,也就是去历练一番,长长见识吧.. $day0$ 上午做了一道斜率优化的题,下午好像在颓??晚上也不想复习了,看了会电视,$12$点才睡.. $day1$ ...
- linux 安装memcached C/C++使用libmemcached库(续)
#include <iostream> #include <string> #include <libmemcached/memcached.h> using na ...
- Bash 的若干基本问题
Bash 的若干基本问题 这里介绍一些bash启动前.后的问题,以及一些使用bash需要注意的基本问题. 1.Bash的介绍 Bash是一种Shell程序,它是一般的Linux系统中的 ...
- Java的CLASSPATH
在JDK安装好后,要设置两个变量Path和Classpath,Path是操作系统要求的,这里不谈了,而classpath是Java虚拟机要求的这里做一个详细的解释. 一.classpath的作用 == ...