如何在Hadoop中完成此任务? (实时公共订阅共享队列)

时间:2015-05-25 19:02:22

标签: java multithreading hadoop hdfs distributed-computing

我有三个线程a,b,c

a& b:循环,每次输出一行。

a和b都将数据写入c。

c:从a和b中读取数据,并进行一些处理。

我想在HDFS之上实现此任务。所以A和B将数据写入HDFS,C从中读取数据。

首先,我想出了一个想法,即每次循环时,A都会写入文件夹“/ a-c”中的新文件。例如在第一个循环中,A输出一行到文件/a-c/0.txt,下一次循环,/ - c / 1.txt,等。

读者C,读取/ a-c和/ b-c中的文件,阅读后删除文件。

事实证明这是有效的,但效率极低。

问题:

还有其他方法可以在HDFS(或频道)之上创建类似于结构的队列,以便有一个公共频道P_QUEUE,其中A& B可以将数据写入,C可以读取。

(记住这些事情同时发生。)

或者,或者,在HDFS之上实现此任务的任何其他方式????????

0 个答案:

没有答案