经过前面几篇博客的介绍,接下来开始正式进入hadoop的学习。首先是hadoop的单节集群学习。参考文档:https://hadoop.apache.org/docs/r2.10.0/hadoop-project-dist/hadoop-common/SingleCluster.html 。
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。接下来3篇博客分别讲述Hadoop的运行模式。首先是本地模式。
1. hadoop命令
输入下面的命令看看是否输出:hadoop脚本的使用文档。
[zohar@hadoop100 hadoop-2.7.2]$ bin/hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME
or
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
note: please use "yarn jar" to launch
YARN applications, not this command.
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
Hadoop jar and the required libraries
credential interact with credential providers
daemonlog get/set the log level for each daemon
trace view and modify Hadoop tracing settings
Most commands print help when invoked w/o parameters.
可以看到输出了hadoop脚本说明,说明我这里是配置好了。这里需要注意的是,这里需要切换到hadoop的安装目录下。如果没有,请输入:
cd /opt/module/hadoop-2.10.0
。
2. 本地模式操作
2.1. grep例子
依次输入下面的命令:
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
$ cat output/*
指令的意思: bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output ‘dfs[a-z.]+’ | | | | | | | hadoop命令 运行jar包 具体运行哪个jar程序 指定grep例子 输入目录 输出目录 按照正则规则
输出:
1 dfsadmin
可以看到运行成功了。
2.2. wordcount例子
下面再看一个wordcount例子:看看统计单词的数目。
创建wcinput目录:
mkdir wcinput
给文件输入内容:
vim wc.input
然后我这里输入的是:
zhangzhihong hadoop helloworld zhangzhihong a this a haha
这里随便写,这个例子就是统计单词重复出现的次数。
运行命令:
[root@hadoop100 hadoop-2.10.0]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount wc.input wcoutput
指令运行的意思: bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount wc.input wcoutput | | | | | | hadoop命令 指定运行jar 具体运行哪个jar(example可以包含多个例子,如grep、wordcount) 具体jar的wordcount例子 输入 输出
输出:
[root@hadoop100 hadoop-2.10.0]# cat wcoutput/*
a 2
hadoop 1
haha 1
helloworld 1
this 1
zhangzhihong 2
可以发现,这个统计是可以运行的。