• Hadoop实战第四章读书笔记


    Hadoop三种运行方式:

    • 单机模式。优点:安装配置简单,运行在本地文件系统,便于调试和查看运行效果;缺点:数据量大时较慢,不能模拟分布式模式;
    • 伪分布式模式。优点:运行在本地HDFS文件系统上,能够模拟完全分布模式,看到一些分布式处理的效果;
    • 完全分布式模式。优点:运行在多台机器的HDFS之上,体现出分布式的优点;缺点:调试麻烦;

    Hadoop网络用户界面:

    • JobTracker:(http://jobtracker-host:50030),方便跟踪Job工作进程,查看工作统计和日志;
    • NameNode: (http://jobtracker-host:50070),查看NameNode的基本情况,HDFS中的内容,NameNode日志;

    性能调优:

    • 合并小文件为大文件或使用CombineFileInputFormat
    • 压缩文件:压缩Map输出文件,减少磁盘IO和网络传输
    • 过滤数据:对数据进行预处理,过滤掉不需要的数据;例如使用Bloom Filter算法:Bloom Filter可以用在内连接,它每次检测返回值是“在集合内(可能错误)”和“不在集合内(绝对不在)”,这样可以保证不会把有用的数据过滤掉,虽然有少许无用数据漏网,确换来了时间和空间上的性能提升 。
    • 修改map和reduce最大任务数设置;

    可以重载下列方法实现复杂MapReduce函数:

    • setup函数(Called once at the start of the task),类似于单元测试的setup
    • cleanup函数(called once at the end of the task),类似于单元测试的teardown
    • run函数(for more complete control over the execution of the Mapper).run函数类似于一个模板方法,它内部描述了setup,map,reduce,cleanup的执行先后顺序及过程参数,重载它就可以完全控制任务的执行过程,可以添加自己的控制内容(是否可以在这里实现链接MapReduce Job,类似于map之前还是一个map之类的?)。

    MapReduce Job中全局共享数据:

    • 通过HDFS文件做全局共享数据媒介。优点:可读可写;缺点:占用系统资源
    • 任务启动之初将数据set到Job配置属性。优点:资源消耗小;缺点:不适合比较大的共享数据; 只读?
    • 使用DistributedCache。优点:适合大量共享数据;缺点:只读;

    链接MapReduce Job:

    • 线性MapReduce Job流:将Job的启动代码设置成只有上一个Job结束才执行,将Job的输入设置成上一个Job的输出路径(如何设置?利用Run函数还是文件标志位等其他方法?)
    • 复杂MapReduce Job流:利用ControlledJob类和JobControl类:正常配置各个Job,封装到ControlledJob,设置依赖关系,注入JobControl,JobControl.run)
    • Job设置预处理和后处理过程:利用ChainMapper和ChainReducer(只支持旧API)
  • 相关阅读:
    HAproxy 1.5 dev14 发布
    IBM/DW 使用 Java 测试网络连通性的几种方法
    Skype 4.1 Linux 发布,支持微软帐号登录
    Dorado 7.1.20 发布,Ajax的Web开发平台
    Aspose.Slides for Java 3.0 发布
    开发版本 Wine 1.5.18 发布
    BitNami Rubystack 开始支持 Ruby 2.0
    XWiki 4.3 正式版发布
    Silverlight实例教程 Out of Browser的Debug和Notifications窗口
    Silverlight实例教程 Out of Browser与Office的互操作
  • 原文地址:https://www.cnblogs.com/end/p/2779499.html
Copyright © 2020-2023  润新知