我有一些脚本可以安装一个运行nifi的docker容器。我已经在我们的开发箱上运行了这些脚本,没有问题。然而,当我在int box上运行它们时,我在nifi-bootstrap.log中看到以下错误,导致整个nifi在启动时立即死亡:
java.io.FileNotFoundException: /data/nifi/work/snappy-1.0.5-libsnappyjava.so (No such file or directory)
我检查了运行该程序的开发服务器,根据mlocate,该服务器上没有/data/nifi/work目录,libsnappyjava也不存在。
两个版本之间的流文件完全相同,我已经做了一个md5sum来确保这一点。nifi.properties文件中唯一的区别是,它们各自都有自己的VM主机名,由ansible注入到相应的字段中。nifi安装是未被触摸的父docker图像的一部分,因此图像之间也应该相同。
我使用的是我公司创建的nifi tarball,其中包含一些公司特定的罐子等,但它应该建立在最新的nifi版本之上。
我能说的功能性dev和非功能性int之间的唯一区别是,在升级nifi以获得更新的nifiapi之前,我最初安装了一个运行旧版本的docker映像。我不知道在升级之前以某种方式运行旧的nifi是否会对我们的/data目录进行更改,以防止升级后的nifi失败?
那么,为什么我的int在没有snappyJava的情况下开发似乎很好的时候却在寻找它呢?