我已经编写了Heron拓扑,它从本地文件夹获取数据并对其进行处理。但是,除了.pex文件中描述的文件夹之外,heron看不到任何其他文件夹。如何在.pex声明的文件夹之外读取数据?
发布于 2018-11-14 01:58:02
启动heron实例后,它应该可以访问同一容器中的文件。例如,它们可以将日志写入./ logs /INSTANCE_ID.log,这意味着它具有对这些文件的写访问权限。
您能否检查数据文件在运行的容器中是否可用,以及实例是否使用正确的文件路径来访问这些文件?
发布于 2018-11-14 02:00:58
理想情况下,您不会在拓扑中依赖本地数据。最好将您的螺栓需要访问的任何数据放在外部系统中,如数据库或键:值存储。然后,您可以让bolts查询(并在内存中本地缓存)该数据。如果您需要添加每个螺栓的更多副本,这也具有更好的伸缩性,因为您可以避免本地文件上可能的资源争用。
如果你真的想让数据对于螺栓来说是本地可访问的,答案取决于你所使用的调度器。它可能涉及到将文件添加到调度程序使用的heron实例容器映像中,也可能意味着每次更改数据时都要重新构建容器。同样,我建议使用外部数据存储。
https://stackoverflow.com/questions/53285835
复制相似问题