• 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)
  • 相关阅读:
    顺序容器2(用法)
    运算符重载
    IO相关3(string流)
    IO相关2(文件输入输出)
    C语言--指针
    Java---匿名类
    Andriod开发 --插件安装、环境配置、问题集锦
    ubuntu--vim 技巧
    ubuntu--命令大全
    各浏览器userAgent汇总
  • 原文地址:https://www.cnblogs.com/end/p/2779499.html
Copyright © 2020-2023  润新知