linux下安装、配置hadoop、在yarn上运行jar包

linux下安装、配置hadoop、在yarn上运行jar包,配置MapReduce历史服务器MRHistoryServer、 配置YARN日志聚集功能

  • 上传解压
  • 配置HAPDOOP

1、上传解压
赋予hadoop-2.7.3.tar.gz执行权限

$ chmod u+x hadoop-2.7.3.tar.gz

解压到指定目录

$ tar -zxf hadoop-2.7.3.tar.gz -C /opt/modules/

 解压到指定目录
注意:
HADOOP Distributed包目录结构按照LINUX系统目录结构规范
2、 配置HADOOP
-a. 配置 *-env.sh 环境变量文件

    hadoop-env.sh  yarn-env.sh  mapred-env.sh 

修改值:

    export JAVA_HOME=/opt/modules/jdk1.8.0_91

赋以执行权限:

    $ chmod u+x hadoop-env.sh yarn-env.sh mapred-env.sh

-b. 依据HADOOP三个模块来进行配置
- HDFS
存储数据
- YARN
管理资源
- MapReduce
分析数据
-c. 配置HDFS环境
- core-site.xml
-


fs.defaultFS
hdfs://bigdata-hpsk01.huadian.com:8020

<!-- 指定HDFS文件系统的本地临时存储目录,默认值为当前系统/tmp -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/modules/hadoop-2.7.3/data/tmpData</value>
</property>

创建对应文件夹:

    $ cd /opt/modules/hadoop-2.7.3 
    $ mkdir -p data/tmpData

hdfs-site.xml

<!-- 由于伪分布式安装部署, 仅有一台机器,所有block副本数没有必要设置为3,设置为1即可 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

- 配置slaves文件:指定DataNode运行在哪些机器上

       bigdata-hpsk01.huadian.com

说明:
此文件中一行表示一个主机名称,会在此主机上运行DataNode
-d. 启动HDFS服务
思考:对于文件系统来说,第一次使用,要做什么??
进行格式文件系统
第一次使用的时候要格式化,但是再使用的时候不能格式化
- 格式系统

        $ cd /opt/modules/hadoop-2.7.3
        $ bin/hdfs namenode -format

- 启动服务
主节点:

扫描二维码关注公众号,回复: 2974580 查看本文章
            $ sbin/hadoop-daemon.sh start namenode

从节点:

            $ sbin/hadoop-daemon.sh start datanode

- 验证:
方式一:查看进程

            $ jps 

测试,hadoop配置成功
方式二:通过WEB UI界面查看
http://bigdata-hpsk01.huadian.com:50070
-e. 测试HDFS
- 帮助文档
-

        $ bin/hdfs dfs

帮助文档
- 创建目录

        $ bin/hdfs dfs -mkdir -p /datas/tmp 

上传文件

        $ bin/hdfs dfs -put etc/hadoop/core-site.xml /datas/tmp

列举目录文件

        $ bin/hdfs dfs -ls /datas/tmp 


查看文件的内容

    $ bin/hdfs dfs -text /datas/tmp/core-site.xml

这里写图片描述

f. 配置YARN集群
对于分布式资源管理和任务调度框架来说:
在YARN上面运行多种应用的程序
- MapReduce
分析数据,速度MapReduce快
主节点:
ResourceManager
从节点:
NodeManagers
-配置yarn-site.xml

        <!-- ResourceManager 服务运行的主机名称 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>bigdata-hpsk01.huadian.com</value>
        </property>   

        <!-- 告知YARN将MapReduce程序运行其上,支持 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>

-配置slaves文件
指定NodeManager运行的主机名称,由于NM与DN同属一台机器,前面已经配置完成。
-g. 启动YARN服务
RM 主节点:

        $ sbin/yarn-daemon.sh start resourcemanager

NM 从节点:

        $ sbin/yarn-daemon.sh start nodemanager


验证:
查看所有与Java相关的进程

        $ ps -ef|grep java

通过WEB UI界面查看
http://bigdata-hpsk01.huadian.com:8088

-h. 运行MapReduce程序
并行计算框架(Hadoop 2.x)
思想:分而治之
核心:
Map: 分
并行处理数据,将数据分割,一部分一部分的处理
Reduce: 合
将Map处理的数据结果进行合并,包含一些业务逻辑在里面
大数据计算框架中经典案例:
词频统计(WordCount)
统计某个文件中单词的出现次数
配置MapReduce相关属性:
拷贝

            $ cp mapred-site.xml.template mapred-site.xml

修改

            <!-- 指定MapReduce的程序运行在YARN上,默认的配置运行在本地Local -->
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>

提交MapReduce程序,到YARN上运行
- 准备测试数据

        $ bin/hdfs dfs -mkdir -p /user/huadian/mapreduce/wordcount/input

提交运行
官方自带MapReduce程序JAR包

            ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
            $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount
            Usage: wordcount <in> [<in>...] <out>
            <--即一下代码-->
            <--提交运行,在yarn运行jar包-->
           $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/lys/mapreduce/wordcount/input /user/lys/mapreduce/wordcount/output

参数说明:
-> 表示的MapReduce程序要处理的数据所在的位置
-> 表示的MapReduc处理的数据结果存储的位置,此路径不能存在
查看结果

这里写图片描述

启动HDFS服务或YARN服务,会产生日志文件
${HADOOP_HOME}/logs

配置MapReduce历史服务器MRHistoryServer
查看监控已经运行完成MapReduce作业执行情况
配置mapred-site.xml:

<!-- 配置历史服务器 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>bigdata-hpsk01.huadian.com:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>bigdata-hpsk01.huadian.com:19888</value>
</property>

启动服务:

$ sbin/mr-jobhistory-daemon.sh start historyserver

这里写图片描述
Aggregation is not enabled
日志聚集功能:
当MapReduce程序在YARN上运行完成以后,将产生的日志文件上传到HDFS的目录中,以便后续监控查看
配置yarn-site.xml:

<!-- 配置YARN日志聚集功能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

重启YARN和JobHistoryServer服务
为了重新读取配置属性
这里写图片描述

======================================================
MapReduce 处理数据过程:
input -> map -> shuffle -> reduce -> output
-a. 针对input和output来说
正常情况下,不需要做任何编码,仅仅在运行MR程序的时候,给定目录名称即可。
-b. 在map和reduce中间的成为shuffle
属于MapReduce框架自己要做的事,当然编程人员可以进行设置调整
-c. 核心关注
map(KEYIN key, VALUEIN value, Context context)
Key:每行数据的偏移量
Value:每行数据的内容 - 真正要处理的数据
reduce(KEYIN key, Iterable values, Context context)
Key:业务需求中的Key的值
Values:要聚合的值

在整个MapReduce程序中,所有数据以(Key, Value)形式流动的

MapReduce程序可以运行在两个地方:
- 本地运行Local
所有的Task都运行在一个JVM中,适合处理小数据,测试使用
- 集群运行YARN
AppMaster/MapTasks/ReduceTasks
每一个Task都会启动一个独立 JVM(Container)

bin/yarn jar \
hadoop-mapreduce-1.0-SNAPSHOT.jar \
com.huadian.bigdata.hadoop.mapreduce.WordCountMapReduce \
/user/huadian/mapreduce/wordcount/input \
/user/huadian/mapreduce/wordcount/output99

1、把自己的jar包上传到/share/hadoop/mapreduce/目录下
这里写图片描述

2、

这里写图片描述

猜你喜欢

转载自blog.csdn.net/liyongshun_123/article/details/80077236
今日推荐