前言
我们生产上公司是使用的CDP集群,一次管理员通知,Solr 组件的数据存放路径磁盘空间不够。
我们的solr 组件时为 Ranger 服务提供日志审计功能,
在我们更改了磁盘路径,并重启了Solr 组件,然后发现相关组件,如 HDFS
, Kafka
等会报相关的报错。具体如下:
报错
在重启 Solr
后,有大量的404
报错,无法找到 ranger_audit
这个索引。
由于换了新的存储路径,那么索引肯定时找不到了,于是我们决定重启相关受影响的组件,这样的话,可能索引就会新建。
也正是这一步,让我们一错再错。
重启
在重启相关受影响组件后,发现 404 的报错是没了,变成了 403 的报错。
并且新的路径下,solr 的shard 数据也没有生成。
报错如下图:
到这里,才反应过来,这个问题和其余的组件的关系不太,主要根源是,更改了新的路径后,solr 集群之间,solr 与 zk 之间的联系出了问题。
解决方案
1. 停止solr 组件
集群 -> CDP INFRA SOLR -> 操作 -> 停止。
2. 更换新的路径
这部之前已经操作过了,所以跳过。
3. zookeeper znode 清理
由于我们的zk 有jaas 认证,所以需要先导入环境变量
export JVMFLAGS="-Djava.secury.auth.login.conf=jaas.conf"
进入zookeeper
zookeeper-client -server `hostname -f`
删除节点
rmr /solr-infra/collections/ranger_audits
rmr /solr-infra/configs/ranger_audits
4. 优化审计索引存储时间,副本数(可跳过)
这一步骤不是必须操作,只是对 ranger_audit
该索引进行一些优化。如 TTL,副本数,shard个数 等等。这个因人而异,配置符合自己集群性能才是关键。
修改最大shard 个数。
shard 个数
副本数
5. 启动Solr
集群 -> CDP INFRA SOLR
-> 操作 -> 启动。
6. 重启ranger
集群 -> Ranger
-> 实例 -> ranger admin
-> 重启。
到此,问题应该是可以解决了,如果相关受影响组件仍在报错。继续执行第七步。
7. 进入solr web ui 修改索引
- 跳转
KNOX WEB UI
集群 -> KNOX
-> KNOX GATEWAY HOME
-> Solr
- 删除collection
进入 solr web ui
-> Collections
> Delete collection
-> 输入要删除的collection 名字
此处输入 ranger_audit
,然后点击 Delete
按钮。
- 新增collection
Add Collection -> 内容如下:
key | value |
---|---|
name | ranger_audit |
config set | ranger_audit |
numsShards | 4 |
replicationFact | 1 |
maxShardsPer | 10 |
此时观察日志,发现已经恢复。问题解决。