《hadoop开发视频教程.ppt》由会员分享,可在线阅读,更多相关《hadoop开发视频教程.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Hadoop大数据解决方案大数据解决方案进阶应用用Hadoop讲师:迪伦(北风网版权所有)MapReduce高阶实现高阶实现(7)q 计数器q 内置计数器q 用户定义的Java计数器q 计数器名称的易读性课程目标课程目标计数器计数器q通过计数器了解待分析的数据,比如分析数据集中的无效记录q计数器是一种手机作业统计信息的有效手段,用于质量控制或应用级统计q计数器可辅助诊断系统故障q对于大型分布式作业而言,使用计数器检测事件更为方便获取计数器比输出日志更方便根据计数器值统计特定时间的发生次数要比分析一堆日志文件容易得多q计数器由其关联任务维护,并定期传给tasktracker,再由tasktrac
2、ker传给jobtrackerq用户可以自定义计数器,需要在整个网络中发送q一个任务的计数器值每次都是完整传输的,而非增量传输q只有当作业执行成功后,计数器的值才是完整可靠的内置计内置计数器数器qHadoop为每个作业维护若干内置计数器,以描述该作业的各项指标qMap-Reduce框架计数器map输入的记录、跳过的记录、输入的字节,输出的记录、输出的字节Combine输入的记录、输出的记录Reduce输入的记录、输出的记录、跳过的组、溢出的记录q文件系统计数器文件系统读的字节文件系统写的字节q作业计数器已启用的map任务、reduce任务(包括推测执行的任务)失败的map任务、reduce任务
3、数据本地/机架本地/其他本地的map任务用用户定义的户定义的JavaJava计计数器数器qMapReduce允许用户编写程序来定义计数器,计数器的值可在mapper或reducer中增加q多个计数器由一个Java枚举(enum)类型来定义,以便对计数器分组q一个作业可以定义的枚举类型数量不限,各个枚举类型所包含的字段数量也不限q枚举类型名称即为组的名称,枚举类型的字段就是计数器名称qMapReduce框架将跨所有map和reduce聚集这些计数器,并在作业结束时产生一个最终结果动态计数器动态计数器q动态计数器不由Java枚举类型定义的计数器q定义动态计数器:public void incrCo
4、unter(String group,String counter,long amount)qHadoop会先将Java枚举类型转变成String类型,再通过RPC发送计数器值q使用枚举类型和String类型在事实上是等价的q枚举类型易于使用,还提供类型安全,适合大多数作业使用q某些特定场合需要动态创建计数器,可以使用String接口用用户自定义计数器实例户自定义计数器实例q实例:统计最高气温的作业,也统计气温值缺失的记录,不规范的字段和质量代码用用户自定义计数器实例户自定义计数器实例用用户自定义计数器实例户自定义计数器实例q运行程序:$hadoop jar job.jar MaxTemperatureWithCounters input/ncdc/all output-countersq作业成功完成执行后,可以看到如下输出:欢迎访问我们的官方网站