• 2020年暑假 (8)


    需求1求出每一个url被访问的总次数,并将结果输出到一个结果文件中

    思路:就是一个wordcount

    map阶段: 解析数据,将url作为key1作为value发出

    reduce阶段:将一组数据的value累加

    需求2求出每个网站被访问次数最多的top3url《分组TOPN

    思路:

    map阶段——切字段,抽取域名作为keyurl作为value,返回即可

    reduce阶段——用迭代器,将一个域名的一组url迭代出来,挨个放入一个hashmap中进行计数,最后从这个hashmap中挑出次数最多的3url作为结果返回

     

    需求3求访问次数最多的topn个网站(只能有1reduce worker《全局TOPN

    思路:

    map阶段:解析数据,将域名作为key1作为value

    reduce阶段:

    reduce方法中——对一个域名的一组1累加,然后将 <域名,总次数>放入一个成员变量Treemap

    cleanup方法中——从treemap中挑出次数最高的n个域名作为结果输出

    要点1每一个reduce worker程序,会在处理完自己的所有数据后,调用一次cleanup方法

    要点2如何向mapreduce传自定义参数

    JobSubmittermain方法中,可以向map workerreduce worker传递自定义参数(通过configuration对象来写入自定义参数);然后,我们的map方法和reduce方法中,可以通过context.getConfiguration()来取自定义参数

    Configuration conf = new Configuration() //

    这一句代码,会加载mr工程jar包中的hadoop依赖jar中的各默认配置文件*-default.xml

    然后,会加载mr工程中自己的放置的*-site.xml

    然后,还可以在代码中conf.set("参数名","参数值")

    另外,mr工程打成jar包后,在hadoop集群的机器上,用hadoop jar mr.jar xx.yy.MainClass

    运行时,hadoop jar命令会将这台机器上的hadoop安装目录中的所有jar包和配置文件通通加入运行时的classpath

    配置参数的优先级:

    1、依赖jar中的默认配置

    2、环境中的*-site.xml

    3、工程中的*-site.xml

    4、代码中set的参数

    优先级一次增大,高优先级的参数值会覆盖低优先级的参数值

       

  • 相关阅读:
    数据库操作基类,实现对Sql数据库的各种操作
    Ubuntu下编译3.0.4内核
    wxPython控件学习之wx.BoxSizer
    How to check table locks
    python自带的minidom创建和解析xml
    How to check fragmentation on SQL Server 2005
    wxPython控件学习之wx.StaticText
    python代码批量更改文件后缀
    Eclipse自动补全增强
    深入分析Linux内核源码
  • 原文地址:https://www.cnblogs.com/ywqtro/p/13590890.html
Copyright © 2020-2023  润新知