5行代码怎么实现Hadoop的WordCount? - 三劫散仙 欢迎关注我的微信公众号:我是攻城师(woshigcs) - ITeye技术网站
如果说学会了使用hello world就代表着你踏入了单机编程的大门,那么学会在分布式环境下使用wordcount,则意味着你踏入了分布式编程的大门。试想一下,你的程序能够成百上千台机器的集群中运行,是不是一件很有纪念意义的事情呢?不管在Hadoop中,还是Spark中,初次学习这两个开源框架做的第一个例子无疑于wordcount了,只要我们的wordcount能够运行成功,那么我们就可以大胆的向后深入探究了。 扯多了,下面赶紧进入正题,看一下,如何使用5行代码来实现hadoop的wordcount,在Hadoop中如果使用Java写一个wordcount最少也得几十行代码,如果通过Hadoop Streaming的方式采用Python,PHP,或C++来写,差不多也得10行代码左右。如果是基于Spark的方式来操作HDFS,在采用Scala语言,来写wordcount,5行代码也能搞定,但是如果使用spark,基于Java的api来写,那么就臃肿了,没有几十行代码,也是搞不定的。 今天,散仙在这里既不采用spark的scala来写,也不采用hadoop streaming的python方式来写,看看如何使用我们的Pig脚本,来搞定这件事,测试数据如下: i am hadoop i am hadoop i am lucene i am hbase i am hive i am hive sql i am pig Pig的全部脚本如下: --大数据交流群:376932160(广告勿入) --load文本的txt数据,并把每行作为一个文本 a = load '$in' as (f1:chararray); --将每行数据,按指定的分隔符(这里使用的是空格)进行分割,并转为扁平结构 b = foreach a generate flatten(TOKENIZE(f1, ' ')); --对单词分组 c = group b by $0; --统计每个单词出现的次数 d = foreach c generate group ,COUNT($1);Read full article from 5行代码怎么实现Hadoop的WordCount? - 三劫散仙 欢迎关注我的微信公众号:我是攻城师(woshigcs) - ITeye技术网站
No comments:
Post a Comment