首先我们需要安装Hadoop,并对Hadoop进行配置。这里我们就不赘述了,详情看这篇博客:Hadoop安装配置
值得注意的是,配置的时候,需要给Hadoop权限才能正确执行。最简单的办法就是讲hadoop以及其目录下所有文件都归在一个组中。
chown -R hadoop:hadoop hadoop文件夹
就可以了。
配置完成之后,我们我们还需要什么?
1.需要在HDFS中保存有文件。
2.需要一个程序jar包,我们前面说过,JobTracker接收jar包就会分解job为mapTask和reduceTask。mapTask会读取HDFS中的文件来执行。
我们来看目标。
我们输入两个文件,file1和file2。交给hadoop执行之后,会返回file1和file2文件中的单词的计数。
我们说过,hadoop返回的是<key,value>的键值对的形式。
所以结果如下:也就是把单词以及单词的个数返回
school 1
hello 3
world 2
...
所以我们首先创建两个文件:
file1和file2。
随便填点东西在里面,文件中的内容是用来计数。单词之间用空格分隔,当然这是不一定的,如何区分单词是在后面jar包中的map程序中分辨的。
我们写好了这两个文件之后,要将文件提交到HDFS中。如何提交呢?
提交之前,首先要确保hadoop已经运行起来了,查看jps可以看到hadoop的进程。
首先我们在hadoop的HDFS中创建一个文件夹。
hdfs dfs -mkdir input_wordcount
这样就可以在HDFS根目录下创建一个input_wordcount的文件夹。
其实Hadoop的HDFS命令行非常接近Shell,只需要使用hdfs dfs -后面写上shell命令就可以对应执操作HDFS文件系统了。