Hadoop 如何通过流媒体加速HDFS中的数据探索?

Hadoop 如何通过流媒体加速HDFS中的数据探索?,hadoop,streaming,hdfs,Hadoop,Streaming,Hdfs,我想从hdfs中提取一些字段 目前我正在做hadoop fs-text/path/to/20120903/*-*2>/dev/null | awk-F'\t'{print$16}'| sort | uniq>users-0903 我怎样才能加快速度(需要在0904、0905进行此操作…这需要一些时间) 我尝试过一些Hadoop流媒体,但它似乎不喜欢我给它的大多数脚本,所以我放弃了。您将如何尝试使用流式处理来完成此任务?使用Hadoop流式处理的快速方法是: hadoop-jar-hadoop-s

我想从hdfs中提取一些字段

目前我正在做hadoop fs-text/path/to/20120903/*-*2>/dev/null | awk-F'\t'{print$16}'| sort | uniq>users-0903

我怎样才能加快速度(需要在0904、0905进行此操作…这需要一些时间)


我尝试过一些Hadoop流媒体,但它似乎不喜欢我给它的大多数脚本,所以我放弃了。您将如何尝试使用流式处理来完成此任务?

使用Hadoop流式处理的快速方法是:

hadoop-jar-hadoop-streaming.jar-input/path/to/2012093-output/path/to/output-0903-mapper“awk-F'\t'{print\$16}'”-reducer“uniq”

或者写得更好:

hadoop jar hadoop-streaming.jar \
  -input /path/to/2012093 \
  -output /path/to/output-0903 \
  -mapper "awk -F '\t' '{print \$16}'"\
  -reducer 'uniq'

映射器将在选项卡之间发出第16个单词作为没有值的键。然后在洗牌/排序过程中对其进行排序,对
uniq
的调用将得到每个键/值对,它们只是键的重复。uniq将把这些文件缩减为一份

,感谢您提到隐式洗牌/排序。