当前位置: 首页 > news >正文

网站怎么显示备案号网站自动收录

网站怎么显示备案号,网站自动收录,wordpress哪个主题好,公司建官网找谁弄本文我们学习MapReduce默认分区以及自定义分区实践 当我们要求将统计结果按照条件输出到不同文件(分区)&#xff0c;比如按照统计结果将手机归属地不同省份输出到不同文件中(分区) 1.默认Partitioner分区 public class HashPartitioner<K, V> extends Partitioner<…

本文我们学习MapReduce默认分区以及自定义分区实践

当我们要求将统计结果按照条件输出到不同文件(分区),比如按照统计结果将手机归属地不同省份输出到不同文件中(分区)

1.默认Partitioner分区

public class HashPartitioner<K, V> extends Partitioner<K, V> {public int getPartition(K key, V value,int numReduceTasks) {return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;}
}

默认分区是根据key的hashCode对ReduceTasks[通过job.setNumReduceTasks(2)赋值]取模得到,用户没法控制key存储到哪个分区

2. 自定义Partitioner分区

  • 我们在resources目录下新建phone2.txt
1 13764368888 196.168.0.11 1116 854 200
2 13764368888 196.168.0.11 1136 834 200
3 13764368888 196.168.0.11 1146 824 200
4 13764368888 196.168.0.11 1116 804 200
5 13664368888 196.168.0.11 1116 854 200
6 13864368888 196.168.0.11 1136 834 200
7 13964368888 196.168.0.11 1146 824 200
8 13764368888 196.168.0.11 1116 804 200
  • 新建自定义ProvincePartitioner类
public class ProvincePartitioner extends Partitioner<Text, FlowBean> {@Overridepublic int getPartition(Text text, FlowBean flowBean, int numPartitions) {// Text是手机号String phone = text.toString().substring(0, 3);// 注意分区号需要连续,从0开始分区int partition;if ("136".equals(phone)) {partition = 0;} else if ("137".equals(phone)) {partition = 1;} else if ("138".equals(phone)) {partition = 2;} else if ("139".equals(phone)) {partition = 3;} else {partition = 4;}return partition;}
}
  • 新建FlowPartitionerDriver类
public class FlowPartitionerDriver {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {Configuration conf = new Configuration();Job job = Job.getInstance(conf, "flowPartitioner");job.setJarByClass(FlowPartitionerDriver.class);job.setMapperClass(FlowMapper.class);job.setCombinerClass(FlowReduce.class);job.setReducerClass(FlowReduce.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(FlowBean.class);// 关联自定义分区类job.setPartitionerClass(ProvincePartitioner.class);// 设置ReduceTask任务数job.setNumReduceTasks(5);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}
  • 传参运行
E:\Java\blogCode\hadoop\src\main\resources\phone2.txt E:\Java\blogCode\hadoop\src\main\resources\phone_ret2.txt

由图可知,产生了5个分区,实现了手机归属地不同省份输出到不同文件中

3.分区总结

  1. 如果ReduceTask数量>getPartition结果数,则会多产生空的part-r-000xx文件
  2. 如果1<ReduceTask数量<getPartition结果数,则有一部分数据无处写,会Exception
  3. 如果ReduceTask数量=1,则不管MapTask输出多少分区文件,最终结果都会交给一个ReduceTask,只会产生一个文件part-r-00000
  4. 分区号必须从零开始,逐一累加

欢迎关注公众号算法小生与我沟通交流

http://www.yayakq.cn/news/977008/

相关文章:

  • 宝安住房和建设局网站官网一站式平台网站开发技术
  • 长春企业网站建设潍坊百度网站快速排名
  • 查询建设公司业绩网站seo外包资讯
  • 宣城网站建设宜城做网站
  • 北京商城网站建设网站开发属于什么部门
  • 互联网网站开发发展品牌科技公司排名
  • 企业网站建设的案例怎么做网站需求分析
  • 海南北京网站建设一起做网站注册地址
  • 专业网站制作推广服务跨境电商网站平台
  • 网站 运营 外包 每个月多少钱wordpress角色名
  • 司法网站建设运营情况环球贸易网官网
  • 网站域名费用免费晋江网站建设
  • php 企业网站开发教程赣州
  • wordpress分页导航不显示不出来淮南网站优化
  • 网站建设实训该写哪些内容珠海市住房城乡建设官网
  • 福建省建设工程信息网站高端个性化网站建设
  • o2o电商网站开发贵阳市做网站的公司有哪些
  • 电子商务的网站建设房屋出租网站模板
  • 如何编程制作自己的网站国外网站建站
  • 多用户网站建设方案wordpress好的插件
  • 电脑装机网站网页实现方案
  • 做养生的网站多吗app内测分发平台
  • 随州学做网站的学校wordpress网站加入商城
  • 我的网站百度怎么搜索不到泰安企业网站建设电话
  • flash网站开发教程网站主题怎么介绍
  • 页面做的好看的网站申请关闭网站
  • 网站你懂我意思正能量app做网站麻烦不
  • 阿里巴巴的网站建设校园网站建设计划
  • 广州哪里可以做网站广州做网站的企业
  • 塘沽网站建设优化做跨境电商需要什么条件