在前面的步骤中,我们已经建立了hadoop环境,下面该运行一个实例了,就拿hadoop自带的wordcount练手吧。
- 建立本地数据文件
在我们准备的hadoop本地文件夹data下建立一个data_in文件夹,并在此文件夹下创建两个数据文件,分别是file1.txt和file2.txt。
file1.txt中保存一个句子:Hello world!
file2.txt中保存一个句子:I am the king of the world!
- 上传数据文件至dfs文件系统
下面我们要将本地建立的两个数据文件上传到hdfs文件系统中。
(以下过程,如果没有启动hadoop环境,请参考hadoop安装过程中启动hadoop的方法先启动hadoop环境,否则会看到“Retrying connect to server”的错误)
* 进入cygwin环境
*
*
*
*
整个过程如下图所示:

- 执行wordcount程序
数据文件准备好了,我们就可以执行wordcount程序了。
在hadoop的bin目录下执行:
./hadoop jar ./../hadoop-examples-1.0.3.jarwordcount data_in data_out
在运行wordcount程序中,我曾经遇到过以下一些问题:
- dfs上传文件,报“Permission denied”错误
解决方法:设置hdfs-site.xml配置文件中的权限检查为false
- 执行程序遇到“Failed to set permissions of path”错误
这个错误可能出现在若干地方,例如taskTracker不启动、运行wordcount程序直接报此错误等。通常看到的错误都是不能将某个文件或目录设置为权限0700或0755等。
这个问题有很多人遇到过,是某些hadoop版本中存在的bug,在windows系统中不能兼容文件权限操作。至于解决方法,有说将cygwin的bin目录添加到windows系统的PATH路径中,有说将hadoop系统代码中的0700修改为0777等,但我都试过,都不管用,最终解决方法,是修改hadoop的FileUtil类下如下代码:
private
//
//
//
//
//
即将文件权限检查的代码注释掉,可以规避掉此错误。
修改hadoop系统文件并便宜发布的方法,请参考《Windows下Cygwin环境的Hadoop安装(4)- 在Eclipse中建立hadoop开发环境》(http://blog.csdn.net/liu_jason/article/details/7707472)。
- 执行wordcount时不能创建临时文件的错误
在执行时,可能看到这样的错误:Cannot create directory /user/root/output2/_temporary
解决方法是:在主节点处,关闭掉安全模式,即执行以下指令:
./hadoop dfsadmin –safemode leave
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24064150/viewspace-1120268/ ,如需转载,请注明出处,否则将追究法律责任。