linux运行wordcount,Ubuntu16.04上运行Hadoop2.7.3自带example wordCount摸索记录

本文详细解释了Hadoop分布式文件系统(HDFS)的基础概念,强调了其与Linux文件系统的相似性,并揭示了WordCount示例中文件上传的必要性。作者分享了如何正确配置Hadoop、上传文件、执行WordCount及避免常见错误的过程,适合初学者理解Hadoop操作。
摘要由CSDN通过智能技术生成

首先最最重要的写在最前面,也是我觉得个人踩得最深的坑,刚接触hadoop的人,缺少的认识:

hdfs的理解:它是一个文件系统,跟linux的文件系统是类似的结构,拥有类似的语法,大概就是你在linux上ls查看文件列表,那么hdfs的无非就是hadoop fs -ls。hadoop的输入输出,都是从hdfs读取和写入的,那么比如运行hadoop的word count例子的时候,网上各种大坑教程中完全都没有提到要先自己准备几个input文件,文本文档随便打几个字就好,并且把文件上传到hdfs系统中:这么做的原因在理解了hdfs后很显然了--hadoop的输入输出都在hdfs中,而且例子里的命令指定的目录,指定的也是hdfs中的文件夹路径。所以网上各种治标不治本的exception。explanation再回过头来看,完全就是在给新人挖坑!(不过可能别人写的时候都以为你知道,但是只有我知道我不知道而且你也不知道,话说还在运行hadoop自带例子的人能对hadoop有多么深刻的理解呢,佩服大神们的逻辑)

辣么,让我们从头来一遍:(我个人有把${hadoop_install}/bin加入path,所以我直接可以输入hadoop命令,建议大家都可以这么做。)

1.首先你得安装并运行起来hadoop,我不管你是集群还是单机,运行命令:ps -ef|grep hadoop查询是否有hadoop进程,如果你看到的是如下这一坨,那么你的hadoop就是在运行了。注意,我是本机运行的例子,所以如果你确定你是连别人的服务,那么请无视就好。

466f3ff5397368f6d41a801a36112bb5.png

2.准备两个文件,比如text1.txt和text2.txt 里面各写上一句话,随便什么都好,反正就是拿来统计的。然后使用类似如下的命令来上传到hdfs文件系统中:hdfs dfs mkdir /input; hadoop fs -put *.txt /input ---你得先在hdfs中建立你的文件夹才能把文件往里放不是,还是那句话,它是个文件系统。

3.执行示例程序命令

hadoop jar hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce- examples-2.7.3.jar wordcount /input /output

这里output文件夹不需要在hdfs中提前建好,而且不能提前建,否则会报output folder already exists:比如你运行了一次又想再运行一次的时候就会报这个错,很明显,就是它需要一个空的目录来存放执行结果。如果执行了想再执行一次,就用hadoop fs -rmr /output删掉这个文件夹再执行就好。命令里的我写的相对路径,各位改成自己对应的路径就好。

贴个图证明我执行成功了:

d138a6d7f5a4bce8b0d1656d8309ce78.png

4.查看结果:hadoop fs -cat /output/part-r-00000

b65d40c58517b8cd4988790b8163611d.png

58e1d38f746678bc32dc6dbe38d9230a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值