You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Storm 1.2.3升级至2.2.0时BlobStore文件找不到问题咨询

Apache Storm 1.2.3升级至2.2.0后BlobStore路径异常问题排查与解决

问题原因定位

从报错日志可明确:LocalFsBlobStore读取Blob时生成了错误路径,在实际文件名后额外追加了/data后缀,导致文件无法找到。这是因为Storm 2.x对LocalFsBlobStore的存储结构做了破坏性变更:

  • Storm 1.x中,Blob文件直接存储在哈希命名的目录下(如/grid/1/storm/blobs/967/data_all_test-xxx.jar)
  • Storm 2.x中,每个Blob会被放在以Blob名称命名的子目录中,子目录下存在两个文件:data(存储实际Blob内容)和metadata(存储Blob元数据),正确路径应为/grid/1/storm/blobs/967/all_test-xxx.jar/data

相关配置说明

控制BlobStore行为的核心配置项如下,其中没有直接强制回退到1.x存储结构的开关:

  • storm.blobstore.class:指定BlobStore实现类,默认值为org.apache.storm.blobstore.LocalFsBlobStore
  • storm.local.dir:Storm本地数据根目录,BlobStore的文件默认存放在该目录下的blobs子目录中

解决方案

  1. 清空旧BlobStore数据(推荐)
    升级前删除storm.local.dir/blobs目录下的所有内容,让Storm 2.x重新生成符合新结构的Blob文件。

  2. 重新提交拓扑
    旧拓扑的Jar包是按1.x结构存储的,需要重新提交拓扑,触发Nimbus将Jar包重新存储到2.x的BlobStore结构中。

  3. 手动迁移旧数据(兼容旧拓扑)
    如果无法清空旧数据,可手动将1.x格式的Blob文件迁移到2.x结构:

    • 为每个Blob创建以其名称命名的子目录(如all_test-1-1667296118-stormjar.jar)
    • 将原Blob文件(如data_all_test-1-1667296118-stormjar.jar)移动到该子目录下,并重命名为data

关于Plaintext认证警告

你提到的以下日志并非路径问题的诱因,仅为安全提示:

PlainSaslTransportPlugin [ERROR] SASL PLAIN client transport has been established.  This is totally insecure.  Please do not use this.

若要消除该警告,可切换至KERBEROS等安全认证方式,但不影响BlobStore的正常功能。

内容的提问来源于stack exchange,提问作者Deepti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:35:27