2017-06-21 55 views
1

我创建了一个springxd流====>源JMS队列 - >转换 - 自定义Java处理器(XML到AVRO) - >接收器 - HDFS -Dataset。springxd流使用HDFS数据集来保存avro数据无法更新kerberos票据

流工作正常,但24小时后,因为它的连续连接,它无法更新kerberos身份验证票并停止写入HDFS。我们正在重新启动这个流部署的容器,但仍然面临问题并丢失消息,因为它们甚至不会发送到redis错误队列。

我需要帮助 -

  1. 如果我们能够续约流Kerberos票据。我是否需要更新接收器代码并需要创建自定义接收器?
  2. 我没有在类似于HDFS-Dataset的springxd文档中发现任何接收器,并写入本地文件系统,我不需要通过kerberos身份验证。

感谢您的帮助。

谢谢,

回答

0

这是一个众所周知的问题在春天xd这是没有记录:)。与长时间部署并尝试稍后运行的批处理作业相似的原因。为什么?因为hadoopConfiguration对象将范围强制为单例,并且在您在spring-xd中部署流/作业后获取实例。在我们的例子中,我们创建了一个春季批处理作业的侦听器,以在作业执行之前更新故障单。你可以做你的流类似的东西,借此状的引导

https://github.com/spring-projects/spring-hadoop/blob/master/spring-hadoop-core/src/main/java/org/springframework/data/hadoop/configuration/ConfigurationFactoryBean.java

我希望它能帮助。

+0

谢谢@lake ....这是非常有用的... – AJ007