hadoop在pig中提高foreach的并行性

v09wglhw  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(240)

我有一个要迭代的url列表,其中每个url都包含一个我要下载的特定文件。我正试图利用hadoop/pig来加速这个过程,认为让每个节点负责一个特定的下载/上传将有助于提高网络吞吐量。
我有一个udf,负责下载、损坏检查、上传,但我在寻找一种方法使这个调用在某种意义上不阻塞,以便我可以在特定时间进行多次下载时遇到了问题。。我从一个foreach开始为每个url调用udf,但它只会一次生成一个下载任务。有两个任务分别使用一个Map器运行。一个运行foreach循环,另一个运行udf。每个udf都是一个独立的任务,因为每个文件部分在逻辑上都是一个独立的下载。有没有办法让这更平行?我不确定增加Map器的数量是否会导致这个自定义项是非阻塞的。。
我要处理的文件大小大约是2.8gb一个,我每天要处理1tb左右
任何帮助或建议调查将是可怕的!

txu3uszq

txu3uszq1#

你可以根据自己的情况使用Kafka。这是一个apache项目。它每秒可以处理来自数千个客户端的数百兆字节的读写。
它有两个实体,一个称为生产者,将数据输入到Kafka,另一个称为消费者,从Kafka读取数据。
您可以将从url下载数据的客户机实现为您的生产者。如果你想处理的数据,你可以使用风暴和注册它作为消费者。
或者可以使用kafka和hadoopapi将hadoop注册为kafka的使用者。

相关问题