Elasticsearch 之 慘痛部署(分片移位)
部署说明
硬件
server两台:
机器A:64G内存
机器B:32G内存
分片
共12个节点
2个查询节点。10个存储节点
8个主分片
1个复制分片(每一个分片都有一个副本分布在不同的节点上面)
每台机器都挂了6个机械盘每一个盘都是不同的分区。
部署环境用docker weave 来做 elasticsearch cluster
能够參考我的另外一篇博文:
http://blog.csdn.net/mrsunnycream/article/details/50921012
就这样环境默默的部署着。一切都非常顺利。
部署完毕后開始导入数据,导入一部分数据后(因为数据量比較大),就关机下班了。
大约有几十G左右。
第二点上班后要继续导入数据。开机,启动weave,启动Es 集群,
然后查看集群状态:red. 我想了下主分片不可用?不可能啊,是不是有的节点没有增加集群呢,然后查看weave 状态。两台机器都互相Ping一下 weave 转发的路由,一切都是通的,过了一会还是red,不淡定了,查看集群节点数量12个。对啊没错啊,怎么回事呢?然后又去看日志,没有报什么错误。如今真的開始不淡定了。
然后就用 _cat/shards,来查看究竟是哪个分片出问题了。
结果看到7号分片没有挂载到集群里面
出现这个问题感觉非常诡异啊,即使主分片找不到,副本也能顶上去啊。
这个问题发现越来越大了。我勒个乖乖。
每一个节点的数据都是挂载到不痛的机械盘上的也就是不同的分区上面的。
然后就一个一个分区的挨着找,然后查看分区数量也没错。进去分区中看看昨天传送数据的时候七号分片在那个盘上面。当找到第三个分区的时候发现 明明是两个节点的数据挂在这个分区上面怎么这个分区上面有五个节点的数据。哎開始头晕啊。没办法继续找原因吧,可是发现这个分区的两个节点中有七号分片,可是一点数据都没有,又看看其他的几个数据文件夹是正常的,然后紧跟着查看其他分区的情况发现第四个分区也是这种情况,感觉跟发生了灵异事件差点儿相同,命名配置的节点数据都在指定的分区上面(就是Docker挂在不通的文件夹以下),假设把第三个分区和第四分区的文件夹调换一下就应该是正确了。
可是也不能手动的移动文件夹吧,还得找问题出在什么地方吧。
我用了以下的办法
在每一个分区上面建立一个文件,文件名称字就和分区编号一样。紧接着我关机,再次又一次启动机器发现有的文件名称称和自己所在的分区编号不一致(当然经过多次关机和开机測试的)。
我勒个乖乖啊,如今大家可能想到问题的根源了啊。
原来是挂盘出现的问题,最后把原来的盘符名称改成UUID后问题就攻克了。
打开 /etc/fstab这个文件。把上面的/dev 开头的换成以下UUID开头的即可了
先在机器上面运行sudo blkid命令
然后依照相应关系进行替换,例如以下所看到的
stat and raid
/dev/sdb1 /opt/lucy1 ext4 defaults 0 0
/dev/sdc1 /opt/lucy2 ext4 defaults 0 0
/dev/sdd1 /opt/lucy3 ext4 defaults 0 0
/dev/sde1 /opt/lucy4 ext4 defaults 0 0
/dev/sdf1 /opt/raid ext4 defaults 0 0
UUID=aaaaa-aaa-aaaa-aaa-aaaa /opt/lucy1 ext4 defaults 0 0
UUID=bbbbb-bbb-bbbb-bbb-bbbb /opt/lucy2 ext4 defaults 0 0
UUID=ccccc-ccc-cccc-ccc-cccc /opt/lucy3 ext4 defaults 0 0
UUID=ddddd-ddd-dddd-ddd-dddd /opt/lucy4 ext4 defaults 0 0
/dev/sdf1 /opt/raid ext4 defaults 0 0
真是一个悲伤的故事!
。!
!
Elasticsearch 之 慘痛部署(分片移位)的更多相关文章
- elasticsearch+kibana+metricbeat安装部署方法
elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...
- Elasticsearch介绍及安装部署
本节内容: Elasticsearch介绍 Elasticsearch集群安装部署 Elasticsearch优化 安装插件:中文分词器ik 一.Elasticsearch介绍 Elasticsear ...
- mongodb 集群部署--分片服务器搭建
部署分片服务器 1.分片 为了突破单点数据库服务器的I/O能力限制,对数据库存储进行水平扩展,严格地说,每一个服务器或者实例或者复制集就是一个分片. 2.优势 提供类似现行增·长架构 提高数据可用性 ...
- ELK教程1:ElasticSearch集群的部署ELK
在分布式系统中,应用数量众多,应用调用链复杂,常常使用ELK作为日志收集.分析和展示的组件.本篇文章将讲讲解如何部署ELK,然后讲解如何使用Filebeat采集Spring Boot的日志输出到Log ...
- 【分片无法挂载】Elasticsearch分片和副本无法挂载(分片移位)
部署说明 硬件 服务器两台: 机器A:64G内存 机器B:32G内存 分片 共12个节点 2个查询节点,10个存储节点 8个主分片 1个复制分片(每个分片都有一个副本分布在不同的节点上面) 每台机器都 ...
- 谈一谈Elasticsearch的集群部署
Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓 ...
- elasticsearch 路由文档到分片
路由文档到分片 当你索引一个文档,它被存储在单独一个主分片上.Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢? 进程不能是 ...
- Elasticsearch究竟要设置多少分片数?
0.引言 本文翻译自Elasticsearch20170918热乎的官方博客,原作者:Christian Dahlqvist. 在构建Elasticsearch集群的初期如果集群分片设置不合理,可能在 ...
- nutch2.1+mysql+elasticsearch整合linux单机部署
这次主要介绍下nutch2.1和mysql和elasticsearch的整合,是在单机上运行,并不是分布式部署.1.下载nutch2.1 nutch下载地址:http://labs.mop.com/a ...
随机推荐
- PL/SQL配置访问多个不同IP的oracle
第一步:打开Oracle的tnsnames.ora文件.添加 test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = ...
- 九度oj 题目1159:坠落的蚂蚁
题目描述: 一根长度为1米的木棒上有若干只蚂蚁在爬动.它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右.如果两只蚂蚁碰头,则它们立即交换速度并继续爬动.三只蚂蚁碰头,则两边的蚂蚁交换速度, ...
- python 向MySQL里插入中文数据
用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...
- BZOJ 2595 [Wc2008]游览计划 ——斯坦纳树
[题目分析] 斯坦纳树=子集DP+SPFA? 用来学习斯坦纳树的模板. 大概就是用二进制来表示树包含的点,然后用跟几点表示树的形态. 更新分为两种,一种是合并两个子集,一种是换根,换根用SPFA迭代即 ...
- 【2018.10.10】[HNOI2008] GT考试(bzoj1009)
10pts: 暴力枚举字符串,Hash判是否出现.(真会有人写么) 时间复杂度$O(10^n*n)$. 40pts: 学过OI的人都会写的dp 如果这道题的40pts($n\le 250000$)设成 ...
- WMAP 启动报错 PHP- 提示缺少 msvcr110.dll 的问题
问题描述: 启动 php-cgi 时如果提示缺少 msvcr110.dll 问题原因: 缺少 vc++ 2012 运行库 问题解决: 需要安装 vcredist_x64.exe 或 vcre ...
- *AtCoder Regular Contest 094 F - Normalization
$n \leq 200000$的abc字符串,现能进行如下变换零次或若干次:选一个$i<n$且$s_i \neq s_{i+1}$,把$s_i$和$s_{i+1}$替换成abc三个字母中除了这两 ...
- Python入门--1--基本中的基本
一. 1.这是一个面向对面的编程,一种解释性语言. 2.缩进是python的灵魂,使代码变得非常简洁,正确使用冒号“:”,IDLE的 下一行会自动缩进 3.if语句中 python拒绝接受 ...
- intellij idea 和 myeclipse 转换
原文出处:http://chinaxxren.iteye.com/blog/893970 当只用 intellij idea 建立 工程 1.首先是new project--->create p ...
- 阻塞IO下的echo回显实验
我们只关心代码中的业务逻辑和底层阻塞原因 客户端代码 发送数据 std::string message(len, 'S'); int nw = stream->sendAll(message.c ...