Hadoop 如何通过流媒体加速HDFS中的数据探索?
我想从hdfs中提取一些字段 目前我正在做hadoop fs-text/path/to/20120903/*-*2>/dev/null | awk-F'\t'{print$16}'| sort | uniq>users-0903 我怎样才能加快速度(需要在0904、0905进行此操作…这需要一些时间)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
我尝试过一些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将把这些文件缩减为一份,感谢您提到隐式洗牌/排序。