根据手机号,区分运营商
public static class ProviderPartitioner extends Partitioner<Text,DataBean>{
private static Map<String,Integer> providerMap=new HashMap<String,Integer>();
static{
//映射关系
providerMap.put("135",1);
providerMap.put("136",1);
providerMap.put("137",1);
providerMap.put("138",1);
providerMap.put("139",1);
providerMap.put("150",2);
providerMap.put("159",2);
providerMap.put("182",3);
providerMap.put("183",3);
}
public int getPartition(Text key,DataBean value,int numPartitions){
String account=keu.toString();
String sub_acc=account.subString(0,3);
Integer code = providerMap.get(sub_acc);
if(code == null){
code = 0;
}
return code;
}
}
//组装
jod.setPartitionerClass(ProviderPartitioner.class);
一个partition对应一个reduce
一个机器运行一个NodeManager,还有一个DataNode
NodeManager归ResourceManager(YARN)管理
YarnChild