MapTask类 在MapTask类中找到run函数 if(useNewApi){       runNewMapper(job, splitMetaInfo, umbilical, reporter);     } 再找到runNewMapper @SuppressWarnings("unchecked")   private<INKEY,INVALUE,OUTKEY,OUTVALUE>   void runNewMapper(final JobConf job,    …
Job类  /**    * Define the comparator that controls which keys are grouped together    * for a single call to    * {@link Reducer#reduce(Object, Iterable,    *                       org.apache.hadoop.mapreduce.Reducer.Context)}    * @param cls the raw…
MRJobConfig      public static fina COMBINE_CLASS_ATTR      属性COMBINE_CLASS_ATTR = "mapreduce.job.combine.class"      ————子接口(F4) JobContent            方法getCombinerClass              ————子实现类 JobContextImpl                  实现getCombinerClass方法…
当遇到有特殊的业务需求时,需要对hadoop的作业进行分区处理 那么我们可以通过自定义的分区类来实现 还是通过单词计数的例子,JMapper和JReducer的代码不变,只是在JSubmit中改变了设置默认分区的代码,见代码: //1.3分区 //设置自定义分区类 job.setPartitionerClass(JPartitioner.class); //设置分区个数--这里设置成2,代表输出分为2个区,由两个reducer输出 job.setNumReduceTasks(2); 自定义的JP…
Job类 /**   * Define the comparator that controls    * how the keys are sorted before they   * are passed to the {@link Reducer}.   * @param cls the raw comparator   * @see #setCombinerKeyGroupingComparatorClass(Class)   */    publicvoid setSortCompar…
@ 目录 问题引出 默认Partitioner分区 自定义Partitioner步骤 Partition分区案例实操 分区总结 问题引出 要求将统计结果按照条件输出到不同文件中(分区). 比如:将统计结果按照手机归属地不同省份输出到不同文件中(分区) 默认Partitioner分区 public class HashPartitioner<K,V> extends Partitioner<K,V>{ public int getPartition(K key,V value, in…
'''自定义数组类,实现数组中数字之间的四则运算,内积运算,大小比较,数组元素访问修改及成员测试等功能''' class MyArray: '''保证输入值为数字元素(整型,浮点型,复数)''' def ___isNumber(self, n): if not isinstance(n,(int,float,complex)): return False return True #构造函数,进行必要的初始化 def __init__(self,*args): if not args: self.…
一:项目架构 二:自定义日志类 1. 建立log.conf的配置文件 log.conf [log] LOG_PATH = /log/ LOG_NAME = info.log 2. 定义日志类 LogClass.py import logging from logging import handlers class Mylogger(object): def __init__(self,log_path,log_name): # 1.指明日志记录到哪个文件 "F:/xxx/xx" + &…
1)hadoop允许程序员创建自定义的数据类型,如果是key则必须要继承WritableComparable,因为key要参与排序,而value只需要继承Writable就可以了.以下定义一个DoubleArrayWritable,继承自ArrayWritable.代码如下: package matrix; import org.apache.hadoop.io.*; public class DoubleArrayWritable extends ArrayWritable { public…
在Java框架中,经常会使用注解,而且还可以省很多事,来了解下自定义注解. 注解是一种能被添加到java代码中的元数据,类.方法.变量.参数和包都可以用注解来修饰.注解对于它所修饰的代码并没有直接的影响 先写一个自己的注解类 @Documented //会被javadoc命令识别 @Retention(RetentionPolicy.RUNTIME) //相当于作用时期,比如:运行期.编译期 @Target({ElementType.METHOD}) //相当于作用域,比如方法.类 public…