伪分布的搭建

环境准备

1) 网络配置(主机名, 映射文件(服务器的,  windows,), ip)
2) 关闭防火墙及安全子系统
3) 安装jdk
    切换为普通用户
    sudo chmod 777 /opt
    创建/opt/modules
        /opt/software

搭建伪分布

1) 解压安装hadoop【注意上传和解压过程中的用户权限问题】

$ tar -zxvf /opt/software/hadoop-2.7.6.tar.gz -C /opt/modules/

2) 配置hadoop的java环境支持, etc/hadoop目录下

hadoop-env.sh 
mapred-env.sh 
yarn-env.sh 
在这3个文件中都配置
export JAVA_HOME=/opt/modules/jdk1.8.0_112

3) 与hdfs相关的配置 etc/hadoop

I)core-site.xml
=============core-site.xml===================
    <!--  NameNode地址,访问入口   -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://learn01.bigdata.com:8020</value>
    </property>
    <!--  hadoop在运行时产生的文件,元数据在本地的存放目录  -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.7.6/data</value>
    </property>
============================================

II) hdfs-site.xml
=============hdfs-site.xml============
    <!--存放到hdfs上的文件的副本数,伪分布式配置为1 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
======================================

4) 格式化namenode只格式化一遍

在${HADOOP_HOME}目录下:
[hadoop@learn01 hadoop-2.7.6]$ pwd
/opt/modules/hadoop-2.7.6

查看可以使用的命令及参数
$ bin/hdfs

格式化
$ bin/hdfs namenode -format

出现以下内容表示成功
18/06/01 11:41:16 INFO common.Storage: Storage directory /opt/modules/hadoop-2.7.6/data/dfs/name has been successfully formatted.

5) 启动hdfs守护进程

     > $ sbin/hadoop-daemon.sh start namenode  //启动namenode进程
      $ sbin/hadoop-daemon.sh start datanode    //启动datanode

    验证:
    $ jps
        3097 Jps
        2931 NameNode
        3023 DataNode

    web访问界面 http://learn01.bigdata.com:50070/

HDFS shell的使用
     $ bin/hdfs dfs -ls /
     $ bin/hdfs dfs -mkdir /input
     $ bin/hdfs dfs -mkdir -p /input/test/hellohdfs
     $ bin/hdfs dfs -rm -r /input
     $ bin/hdfs dfs -put ~/hello.txt /input

6) 配置YARN 任务调度 (Mapreduce) 资源管理(resourcemanager nodemanager)

etc/hadoop目录下配置yarn-site.xml
     =======yarn-site.xml=====
    <!-- 指定ResorceManager所在服务器的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>learn01.bigdata.com</value>
    </property>

    <!-- 指明在执行MapReduce的时候使用shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    ====================================

配置mapred-site.xml复制并重名模板文件
        $ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
    =======mapred-site.xml=====
    <!-- 指定MapReduce基于Yarn来运行 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    =====================================

7) 启动hdfs yarn进程

    $ sbin/hadoop-daemon.sh stop namenode
    $ sbin/hadoop-daemon.sh stop datanode

    $ sbin/hadoop-daemon.sh start namenode
    $ sbin/hadoop-daemon.sh start datanode
    $ sbin/yarn-daemon.sh start resourcemanager
    $ sbin/yarn-daemon.sh start nodemanager

查看进程启动
$ jps 
    6581 Jps
    6406 DataNode
    6347 NameNode
    6507 NodeManager
    6460 ResourceManager
通过web访问yarn
    http://learn01.bigdata.com:8088/cluster

8) 向yarn提交mapreduce任务

圆周率计算
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  pi 5 3