0

为 Hadoop 实现数据可用性通知系统的最佳方法是什么,这样每当有新数据出现时,它都会创建一个通知,作业控制框架可以利用该通知来启动依赖于该数据的工作。这里的主要问题是,一旦数据可用,就应该触发作业,而不是在 NameNode 上进行作业轮询以获取数据的可用性?

4

1 回答 1

1

我要做的是使用生产者/消费者模型,该模型可以使用队列相互交互,例如 Amazon SQS。

生产者将维护一个监视目录列表,并hadoop fs -test -e /path/to/watched/dir每隔 x 秒执行一次(其中 x 应该是一个参数),如果命令返回 0 ,$?那么您可以向队列发送消息。消息的内容可能只是刚刚出现的目录的名称,或者您可以添加一些元数据并将其作为 JSON 对象发送,例如带有附加字段。

另一方面,消费者将每隔 y 秒侦听一次队列(其中 y 应该是一个参数),一旦有新数据,您就可以在此目录上开始您的工作。

于 2013-01-21T14:18:51.057 回答