启动HDFS并运行MapReduce程序

执行步骤

  • 配置:hadoop-env.sh
    Linux系统中获取JDK的安装路径,并且修改hadoop-env.sh文件中的JAVA_HOME:

    1
    2
    echo $JAVA_HOME
    vim /opt/module/hadoop-2.7.7/etc/hadoop/hadoop-env.sh

  • 配置:core-site.xml

    1
    vim /opt/module/hadoop-2.7.7/etc/hadoop/core-site.xml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop100:9000</value>
    </property>

    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.7/data/tmp</value>
    </property>

  • 配置:hdfs-site.xml
    1
    vim /opt/module/hadoop-2.7.7/etc/hadoop/hdfs-site.xml
    1
    2
    3
    4
    5
    6
    <!-- 指定HDFS副本的数量 -->
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>

这里因为是伪分布式模式,所以副本的数量设置为1。

启动集群

  • 格式化NameNode(第一次启动时格式化,以后就不要总格式化)
1
2
cd /opt/module/hadoop-2.7.7/
bin/hdfs namenode -format
  • 启动NameNode

    1
    sbin/hadoop-daemon.sh start namenode
  • 启动DataNode

    1
    sbin/hadoop-daemon.sh start datanode

    查看集群

  • 查看是否启动成功

  • web端查看HDFS文件系统

注意:如果不能查看,看如下帖子处理
http://www.cnblogs.com/zlslch/p/6604189.html

  • 查看产生的Log日志
    1
    cd /opt/module/hadoop-2.7.7/logs/

在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。

操作集群

  • 在HDFS文件系统上创建一个input文件夹
1
bin/hdfs dfs -mkdir -p /user/dik/input
  • 将测试文件内容上传到文件系统上
1
bin/hdfs dfs -put wcinput/wc.input

  • 运行MapReduce程序
1
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar  wordcount /user/dik/input   /user/dik/output

启动YARN并运行MapReduce程序

执行步骤

  • 配置yarn-env.sh

配置一下JAVA_HOME

1
2
3
echo $JAVA_HOME
vim /opt/module/hadoop-2.7.7/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk-11.0.1
  • 配置yarn-site.xml
1
vim /opt/module/hadoop-2.7.7/etc/hadoop/yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!-- 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>


<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!-- 日志聚集功能使能 -->
<property>

<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
  • 配置:mapred-env.sh

配置一下JAVA_HOME

1
2
vim /opt/module/hadoop-2.7.7/etc/hadoop/mapred-env.sh
export JAVA_HOME=/opt/module/jdk-11.0.1

  • 配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
1
2
mv mapred-site.xml.template mapred-site.xml
vim /opt/module/hadoop-2.7.7/etc/hadoop/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>

启动集群

启动前必须保证NameNode和DataNode已经启动

  • 启动ResourceManager
1
sbin/yarn-daemon.sh start resourcemanager
  • 启动NodeManager
1
sbin/yarn-daemon.sh start nodemanager

集群操作

  • YARN的浏览器页面查看

http://hadoop101:8088/cluster

  • 删除文件系统上的output文件
1
bin/hdfs dfs -rm -R /user/dik/outpu
  • 执行MapReduce程序
1
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar  wordcount /user/dik/input /user/dik/output

到这里一个简单的伪分布式运行模式就搭建成功啦!