Hadoop单机伪分布式部署(3)

首先,创建一个新的文件,将这段英文的内容复制到该文件中:
cat > test
然后将新创建的test文件放到HDFS文件系统上作为mapReduce的输入文件:
./bin/hadoop fs -put ./test /wordCountInput
 
该命令执行HDFS的命令将本地的文件test放置到HDFS的根目录下wordCountInput文件。通过ls命令查看是否执行成功:
linuxidc@linuxidc-VirtualBox:~/workplace/hadoop/hadoop-2.6.0$ ./bin/hadoop fs -ls /
Found 1 items
-rw-r--r--  1 linuxidc supergroup      1400 2015-01-20 13:05 /wordCountInput
 
mapReduce的测试包在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar中,这是多个测试程序打包而成的jar文件,我们使用wordCount功能执行单词统计。
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /wordCountInput /wordCountOutput
这个命令使用hadoop的mapReduce执行jar包中的wordcount程序,这个程序的输入是HDFS的/wordCountInput文件(如果这个文件是一个目录,那么输入就是该目录下的所有文件),输出放到HDFS的/wordCountOutput目录中。执行过程中打印很多INFO信息,我们看一下部分的输出信息:

15/01/20 13:09:29 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
15/01/20 13:09:29 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
15/01/20 13:09:29 INFO input.FileInputFormat: Total input paths to process : 1
15/01/20 13:09:30 INFO mapreduce.JobSubmitter: number of splits:1
15/01/20 13:09:30 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local810038734_0001
...
15/01/20 13:09:33 INFO mapred.MapTask: Starting flush of map output
15/01/20 13:09:33 INFO mapred.MapTask: Spilling map output
...
15/01/20 13:09:34 INFO mapreduce.Job:  map 100% reduce 0%
...
15/01/20 13:09:35 INFO mapred.LocalJobRunner: Finishing task: attempt_local810038734_0001_r_000000_0
15/01/20 13:09:35 INFO mapred.LocalJobRunner: reduce task executor complete.
15/01/20 13:09:35 INFO mapreduce.Job:  map 100% reduce 100%
15/01/20 13:09:36 INFO mapreduce.Job: Job job_local810038734_0001 completed successfully
15/01/20 13:09:36 INFO mapreduce.Job: Counters: 38
...
    File Input Format Counters
          Bytes Read=1400
    File Output Format Counters
          Bytes Written=1416

然后看一下结果的目录:
linuxidc@linuxidc-VirtualBox:~/workplace/hadoop/hadoop-2.6.0$ ./bin/hadoop fs -ls /wordCountOutput
Found 2 items
-rw-r--r--  1 linuxidc supergroup          0 2015-01-20 13:09 /wordCountOutput/_SUCCESS
-rw-r--r--  1 linuxidc supergroup      1416 2015-01-20 13:09 /wordCountOutput/part-r-00000
 
可以看到这个目录下有两个文件,其中part-r-00000就是我们的执行结果:

linuxidc@linuxidc-VirtualBox:~/workplace/hadoop/hadoop-2.6.0$ ./bin/hadoop fs -cat /wordCountOutput/part-r-00000
Hadoop    5
The    5
a    4
and    7
for    4
is    5
now    3
proxy    2
release    3
the    9
to    4
user    3

这里只摘取了出现次数大于2的一些单词和它在上面的文件中的出现次数。它正确的统计了上面文件中出现的单词的个数,接着我们就可以自己写mapReduce程序来实现各种各样的计算功能了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b209e11a120092c3163dda522e7751a9.html