我想使用hadoop流功能和perl脚本作为Map器和缩减器。我发现这个解释部分地回答了我的问题,但是它不包含reducer处理每个键的所有值的功能。例如,Map器可能会提取对,而reducer将输出每个产品的类别列表。当然,这可以通过将所有reducer数据保存在内存中来实现(就像我前面提到的示例一样),但在许多情况下,这是不可伸缩的。有没有一种方法可以让perl脚本一次获得每个键的所有值(就像普通的map reduce作业一样)?
yv5phkfx1#
您可以使用cpan库hadoop::streaming
sub reduce { my ( $self, $key, $value_iterator) = @_; ... while( $value_iterator->has_next() ) { ... } $self->emit( $key, $composite_value ); }
1条答案
按热度按时间yv5phkfx1#
您可以使用cpan库hadoop::streaming