前言
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop官方网站:http://hadoop.apache.org/
本地运行模式
官方Grep案例
1. 创建在hadoop-2.7.3文件下面创建一个input文件夹
首先进入hadoop-2.7.3: cd /opt/module/hadoop-2.7.3
[zlp@hadoop101 hadoop-2.7.3]$ mkdir input
2. 将Hadoop的xml配置文件复制到input
[zlp@hadoop101 hadoop-2.7.3]$ cp etc/hadoop/*.xml input
3. 执行share目录下的MapReduce程序
[zlp@hadoop101 hadoop-2.7.3]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
4. 查看输出结果
[zlp@hadoop101 hadoop-2.7.3]$cd /output ----->ll ------>cat part-r-00000(查看这里面的内容)------>cd ..(返回上级目录)
官方WordCount案例
1. 创建在hadoop-2.7.3文件下面创建一个wcinput文件夹
[zlp@hadoop101 hadoop-2.7.3]$ mkdir wcinput
2. 在wcinput文件下创建一个input文件
[zlp@hadoop101 hadoop-2.7.3]$ cd wcinput
[zlp@hadoop101 wcinput]$ touch wc.input
3. 编辑input文件
[zlp@hadoop101 wcinput]$ vi wc.input
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
zlp
zlp
保存退出::wq
4. 回到Hadoop目录/opt/module/hadoop-2.7.3
5. 执行程序
[zlp@hadoop101 hadoop-2.7.3]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount wcinput wcoutput
6. 查看结果
[zlp@hadoop101 hadoop-2.7.3]$ cat wcoutput/part-r-00000
伪分布式
1、 启动HDFS并运行MapReduce程序
配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.3/data/tmp</value>
</property>
配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
2、 启动YARN并运行MapReduce程序
配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3、 配置历史服务器
配置mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
4 、配置日志的聚集
配置yarn-site.xml
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
完全分布式
各配置文件:
1、xsync集群分发脚本
在bin目录下xsync创建文件,编写以下内容
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=103; host<105; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
2、配置core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
3、HDFS配置文件
配置hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
4、YARN配置文件
配置yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
5、MapReduce配置文件
配置mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
配置mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6、配置slaves
hadoop102
hadoop103
hadoop104