美文网首页Hadoop大数据
Hadoop学习(三)——YARN和MapReduce初体验

Hadoop学习(三)——YARN和MapReduce初体验

作者: 大数据阶梯之路 | 来源:发表于2019-07-28 22:08 被阅读9次

    粗略了解什么是云计算?
    答:云计算其实就是不在同一台机器上同时做计算,而是分布式运算,把计算分发给多台机器同时来进行。
    分布式计算?
    答:设计原则:移动的是计算,而不是数据。即要计算多台机器的数据时不需要把这些数据移动到同一台机器上, 而是把写好的计算程序分别放到各自存放数据的机器上进行计算,然后再简化进一步地进行计算。

    一、YARN简介

    是hadoop2才出现的资源调度层,是在HDFS上抽象的一层,其上面可以提供多种计算模型,比如MapReduce、storm等等。YARN只为这些计算模型做资源调度,比如HDFS哪台机器是空闲的,就把计算模型的计算指定到哪台机器上。

    进行类比学习,yarn和hdfs差不多,都可以用主从架构来学习,比如在master机器上配置resourcemanager节点,在slave机器上配置nodemanager节点,resourcemanager节点管理着nodemanager节点。一个job来了先访问resourcemanager,然后resourcemanager分发给不同的nodemanager做计算,在生成环境中resourcemanager和namenode往往是不再同一台机器上,还有yarn和hdfs在逻辑上是独立分离的,yarn可以单独运行,不一定要跑在hdfs上,所以没启动hdfs也照样可以启动yarn。

    二、启动YARN

    • 1、先配置yarn-site.xml文件,在configuration标签组里加上下面的配置,声明哪台机器是resourcemanager。然后就可以在master机器上输入命令start-yarn.sh启动resourcemanager然后就会根据之前配置的slaves文件去启动对应不同机器的nodemanager了。注意:四台机器的yarn-site.xml文件都要配置如下,否则会出现明明启动了所有nodemanager,但隔一段时间nodemanager就消失了。
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    
    效果图 在web界面地址栏输入主机IP名:端口号(默认是8088)就可以访问了,比如10.14.28.100:8088,也可以通过直接机器名:端口号(默认是8088),比如master:8088,通过机器名访问的这种需要在我们windows的C:\Windows\System32\drivers\etc目录下修改hosts文件,把映射加上,浏览器在访问网址时会先在这个文件扫描查找有无IP对应的主机名。如下配置:
    10.14.28.100 master
    10.14.28.101 slave1
    10.14.28.102 slave2
    10.14.28.103 slave3
    
    • 2、配置mapred-site.xml.template文件,在configuration标签组中加入如下配置,指定MapReduce计算使用YARN作为资源调度。不配置的话MapReduce程序默认在本地运行。
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
    
    如下图,启动YARN完毕。 图片.png

    三、把一个MapReduce程序在YARN上进行调度

    • 1、经过上述步骤,通过start-yarn.shstart-dfs.sh命令把YARN集群、HDFS集群启动后,通过hadoop fs -put test.txt /命令在hdfs上准备好一个test.txt文件,用来做一个统计词数的小例子。
    • 2、通过命令find /usr/local/hadoop -name *example*.jar来在指定路径目录查找含关键词的文件。下面划线的jar里包含着很多example程序,wordcount统计词数就是其中一个。 图片.png
    • 3、使用hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /test.txt /wcoutput命令把运行程序对指定的/test.txt文件进行统计,并把结果输出到/wcoutput目录下。最后进入/wcoutput目录去查看结果。如下图: 图片.png
    • 4、WordCount的工作流程:

      先经过input输入文件-->接着split按行拆分文件,变成key-value形式的数据-->接着map映射,相当于继续拆分,按单词拆分文件-->接着shuffle派发,这时候会移动数据了,根据key把相同的单词放在一起-->然后再reduce缩减,把单词统计整理下-->最后再output输出文件。 图片.png

    相关文章

      网友评论

        本文标题:Hadoop学习(三)——YARN和MapReduce初体验

        本文链接:https://www.haomeiwen.com/subject/qoewlctx.html