Hadoop安装配置之伪分布式安装

Hadoop伪分布式安装

  • 版本选择2.7.X,我选择的是2.7.3
  • 安装过程

  • 安装前准备

    (1)上传解压
    (2)查看目录结构(删除以下文件)
    bin/*.cmd
    sbin/*.cmd
    share/doc
    (3)修改3个模块的环境变量,修改JAVA_HOME的值为jdk的安装路径
    hadoop-env.sh(23行)
    yarn-env.sh(26行)
    mapred-env.sh(16行,需要先取消注释再修改)
    给三个文件增加执行权限
    chmod u+x hadoop-env.sh yarn-env.sh mapred-env.sh

  • 按照模块来进行配置
    Hadoop官网有部分配置信息,但是不全http://hadoop.apache.org/docs/r2.7.6/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

    (1)common(在Hadoop安装目录的/etc/hadoop下)

    修改core-site.xml文件
    可以将原有的注释都删掉,配置如下图,将local更改为自己的主机名,在Hadoop目录下创建自己的临时目录
    这里写图片描述
    (2)HDFS
    修改hdfs-site.xml文件
    这里写图片描述
    slaves
    修改slaves文件
    这里写图片描述
    启动HDFS:
    第一次使用文件系统需要格式化
    ->格式化文件系统
    先切换到Hadoop安装的根目录下
    bin/hdfs namenode -format
    这里写图片描述
    ->启动主节点
    sbin/hadoop-daemon.sh start namenode
    ->启动从节点
    sbin/hadoop-daemon.sh start datanode
    检查成功的两种方式
    a、Hadoop安装目录下输入jps(或 ps -ef|grep java)
    这里写图片描述
    b、通过webUI界面查看(看到以下界面为成功)
    hostname:50070
    这里写图片描述
    (3)配置YARN
    修改yarn-site.xml
    这里写图片描述
    ->启动主节点
    sbin/yarn-daemon.sh start resourcemanager
    ->启动从节点
    sbin/yarn-daemon.sh start nodemanager
    检查成功的两种方式
    a、jps(ps -ef|grep java)
    这里写图片描述
    b、webUI界面查看
    hostname.8088
    这里写图片描述
    (4)配置MapReduce
    etc目录下没有mapred-site.xml文件,但是有mapred-site.xml.template文件,需要将mapred-site.xml.template文件赋值一份到当前文件夹,且文件名为mapred-site.xml
    先切换到Hadoop安装目录下的etc/hadoop下
    然后:cp mapred-site.xml.template mapred-site.xml
    修改mapred-site.xml文件
    这里写图片描述

    测试HDFS
    帮助文档

    bin/hdfs dfs
    HDFS文件系统目录和Linux目录结构类似,
    命令也类似
    创建目录:
    bin/hdfs dfs -mkdir /datas
    查看目录:
    bin/hdfs dfs -ls /datas
    上传文件:
    bin/hdfs dfs -put /opt/datas/input.data /datas/
    查看文件内容:
    bin/hdfs dfs -text /datas/input.data
    bin/hdfs dfs -cat /datas/input.data

    下载文件:
    bin/hdfs dfs -get /datas/input.data ./
    删除文件
    bin/hdfs dfs -rm -r /datas/input.data

    对于分布式资源管理和任务调度来说哪些程序可以运行在YARN之上

    MapReduce
    并行数据处理框架
    spark
    基于内存分布式处理框架
    storm/flink
    实时流式处理框架
    TeZ
    分析数据,比MapReduce速度快

    测试Hadoop

    mapreduce程序运行在YARN上
    通过经典程序案例,wordcount,
    Hadoop提到测试案例在share/mapreduce目录下
    /opt/modules/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
    -》准备数据,数据是放到hdfs上
    在HDFS系统下创建一个datas目录
    bin/hdfs dfs -mkdir /datas
    准备一个文件,文件内容可以随意添加单词或字符,完了保存,将该文件上传到HDFS上
    切换到Hadoop的安装目录下上传文件
    bin/hdfs dfs -put /opt/datas/input.data /datas/
    http://bigdata-hpsk02.huadian.com:50070下查看结果
    这里写图片描述
    -》提交运行
    bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /datas/input.data /output1
    hostname.8088能够看到结果
    这里写图片描述
    这里写图片描述

    这里写图片描述

    点击上图的history后会找不到页面,需要配置历史服务器

    进行运算的是mapred-site.xml,所以历史服务器在mapred-site.xml中进行配置,增加以下的配置
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>bigdata-hpsk02.huadian.com:10020</value>
    </property>

    启动历史服务器
    sbin/mr-jobhistory-daemon.sh start historyserver
    这里写图片描述
    注意:在启动historyServer服务之前运行的job相关信息已经没了,只有后面运行的才有。
    成功后再执行一次词频统计测试,单击history能够进入以下页面,端口号为19888
    这里写图片描述

    单击上图中标出的1,会报错,还应该配置日志内聚功能,因为m、MapReduce运行在YARN之上,所以日志内聚应该在yarn-site.xml文件中进行配置

    当MapReduce程序在YARN上运行完成之后,将产生日志文件上传到HDFS目录中,以便后续查看。
    <!--日志集聚功能-->
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>

    ·
    <!--日志存储的时间1周 60minutes*60seconds*24hours*7days=604800-->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>

    这样,整个伪分布式Hadoop环境就搭建好了