机器学习与深度学习数据蛙数据分析每周作业

hadoop运行wordcount时的两个bug:Invalid

2019-07-02  本文已影响1人  yimengtianya1

搭建好hadoop环境后,我们想在hadoop下试运行一下wordcount程序,以验证hadoop的完整性。
1、首先在本地创建用于计算的输入文件input/test.txt,并在test.txt中写入相应的文本用于wordcount计算。
2、转到hadoop/share/hadoop/mapreduce下,有一个文件叫hadoop-mapreduce-examples-2.6.5.jar,之后我们需要在此文件夹下调用这个jar包,执行wordcount程序

cd /usr/local/hadoop/share/hadoop/mapreduce

注:/usr/local/hadoop为hadoop的安装目录
3、输入:

hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount data/data/input/test.txt data/data/output/wc

其中:
data/data/input/test.txt为输入文件
data/data/output/wc为输出文件地址

此时会先后出现两个BUG

问题一
java.net.ConnectException: Call From ubuntu/127.0.1.1 to 192.168.37.128:9000

问题:连接错误,表示hadoop连接不上虚拟机服务器。

原因:在core-site.xml与yarn-site.xml中输入的IP地址192.168.37.128为windows的IP地址,不是虚拟机的IP地址。

解决办法

1、虚拟机设置桥接模式:固定本机IP地址

虚拟机设置桥接模式:将虚拟机的IP地址固定下来,以免IP地址每次都在变动,后面就每次都要设置core-site.xml与yarn-site.xml中的IP地址。


图片.png 图片.png 图片.png

2、在虚拟机中Ping主机windows的IP地址。输入命令:

ping  192.168.37.1

注:此处的192.168.37.1为windows的IP地址(在cmd下输入ifconfig查看)

3、查看本虚拟机的IP地址

 ifconfig
图片.png

将本虚拟机的IP地址写入core-site.xml与yarn-site.xml文件(此处可参考《搭建hadoop环境》https://www.jianshu.com/p/800cf4b8f944

问题二

发生错误:InvalidInputException: Input path does not exist

原因:输入文件不在HDFS文件中,只是在linux本地文件中

解决办法:
1、将本地文件传入HDFS文件系统中

hdfs dfs –put ~/person_file/hadoop/data

2、确认该文件已存在HDFS文件系统中,查看文件:

hdfs dfs -ls

此时再将input中的文件test.txt作为输入即可

3、执行命令:

hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount data/data/input/test.txt data/data/output/wc

注意:此处输出的文件也是在HDFS文件系统上。因此需要将文件载入到本地才能查看。

hdfs dfs -get data/data ~/personal_file/hadoop/data

注:将文件由HDFS下的data/data下载至本地文件夹~/personal_file/hadoop/data下。

4、转到本地文件目录下

cd ~/personal_file/hadoop/data/data/output/wc

可以看到两个文件:


图片.png

注:part-r-0000为处理结果文件,_SUCCESS为状态文件(表示该文件执行成功了)

5、输入命令

more part-r-0000

即可查看最后的结果。

至此,Hadoop从安装,到配置环境,再到执行第一个脚本wordcount总算配置完毕。
作为一个本科学土木的,转行做这个,折腾了一星期才弄好。也是功德圆满吧。

上一篇 下一篇

猜你喜欢

热点阅读