为hadoop实现数据可用性通知系统的最佳方法是什么,这样每当出现新数据时,它就会创建一个通知,作业控制框架可以利用该通知来启动依赖于该数据的作业。这里的主要问题是,一旦数据可用,就应该触发作业,而不是在namenode上轮询数据的可用性?
jjjwad0x1#
我要做的是使用一个生产者/消费者模型,它可以使用一个队列(比如amazonsqs)相互交互。制作者将维护一个监视目录的列表,并且 hadoop fs -test -e /path/to/watched/dir 每隔x秒(其中x应该是一个参数),如果命令返回0 $? 然后可以向队列发送消息。消息的内容可以只是刚刚出现的目录的名称,或者您可以添加一些元数据并将其作为json对象发送(例如带有附加字段)。另一方面,使用者将每隔y秒侦听一次队列(其中y应该是一个参数),一旦有新数据,您就可以在这个目录上启动作业。
hadoop fs -test -e /path/to/watched/dir
$?
1条答案
按热度按时间jjjwad0x1#
我要做的是使用一个生产者/消费者模型,它可以使用一个队列(比如amazonsqs)相互交互。
制作者将维护一个监视目录的列表,并且
hadoop fs -test -e /path/to/watched/dir
每隔x秒(其中x应该是一个参数),如果命令返回0$?
然后可以向队列发送消息。消息的内容可以只是刚刚出现的目录的名称,或者您可以添加一些元数据并将其作为json对象发送(例如带有附加字段)。另一方面,使用者将每隔y秒侦听一次队列(其中y应该是一个参数),一旦有新数据,您就可以在这个目录上启动作业。