本地模式
在本机运行MapReduce。在本机使用多线程的方式来运行多个Task。
$HADOOP_HOME/etc/hadoop/mapred-site.xml文件中设置相关配置(默认就是该配置)。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
在YARN上运行
将MapReduce提交给YARN,由YARN将Job中的多个task分配到多台机器中,启动container运行task。运行需要启动YARN,YARN由ResourceManager和NodeManager两组进程组成。
1、修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml文件。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2、修改$HADOOP_HOME/etc/hadoop/yarn-site.xml文件。
<!-- 配置ResourceManager在哪个机器启动 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3、启动ResourceManager和NodeManager。
启动ResourceManager:yarn-daemon.sh start resourcemanager。
启动NodeManager:yarn-daemon.sh start nodemanager。
4、查看。
通过jps命令查看ResourceManager和NodeManager进程是否已经开启。也可以访问http://ResourceManager所运行的机器主机名/ip:8088来查看运行情况。
使用方法
可以通过命令:hadoop jar jar包 主类名 参数{多个输入目录,一个输出目录}来提交任务。例如:hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount /wc2 /wc3(统计wc2文件夹中文件内容的单词个数,并将结果放到wc3文件夹下)。
需要注意的是,参数中输入目录下的内容必须全部是文件,输出目录必须不存在。