mapreduce demo实现详解大数据
数据 实现 详解 Demo MapReduce
2023-06-13 09:20:27 时间
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
//配置项
Configuration conf = new Configuration();
//定义任务,第一个参数设定配置项,第二个参数设置任务名称
Job job = new Job(conf, "bscreenUserCount");
//设置输入文件格式化类
job.setInputFormatClass(FileInputFormat.class);
//设置输出文件格式化类
job.setOutputFormatClass(FileOutputFormat.class);
//设置启动类
job.setJarByClass(BreadPointDriver.class);
//设置mapper
job.setMapperClass(UserCountMapper.class);
//设置reducer
job.setReducerClass(UserCountReducer.class);
//设置reducer数量, 如果不设置默认为1,如果设置0则不执行reducer,设置1以上需要编写partition类
job.setNumReduceTasks(0);
job.setMapOutputKeyClass(Text.class);//map输出key数据类型
job.setMapOutputValueClass(Text.class);//map输出value数据类型
job.setOutputKeyClass(BscreenUseCount.class);//reducer输出key数据类型
job.setOutputValueClass(NullWritable.class);//reducer输出value数据类型
FileInputFormat.addInputPath(job, new Path(inputPath));//输入路径
FileOutputFormat.addInputPath(job, new Path(outputPath));//输入路径
job.waitForCompletion(true);//执行任务
2. map类
public class BreadPointMapper extends Mapper LongWritable, Text, Text, Text { /** * @param key 行索引 * @param value 行内容 * @param context 容器 * @throws IOException * @throws InterruptedException @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String outKey = ""; String outValue = ""; context.write(new Text(outKey),new Text(outValue)); }
3. reducer类
public class BreadPointReducer extends Reducer Text, Text, Text, NullWritable { /** * @param key map中存储的key,每个key会执行一次reduce * @param value 对应的value列表 * @param context * @throws IOException * @throws InterruptedException @Override protected void reduce(Text key, Iterable Text value, Context context) throws IOException, InterruptedException { //处理key和value //... String outKey = ""; String outValue = ""; context.write(new Text(outKey),new Text(outValue)); }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9637.html
分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集相关文章
- Rsync+Inotify 实现数据同步
- Redis数据过期策略的实现详解
- 实现java 中 list集合中有几十万条数据,每100条为一组取出详解编程语言
- 基于java实现mongodb的数据库连接池详解大数据
- H2O中的随机森林算法介绍及其项目实战(python实现)详解大数据
- 决策树—ID3算法(介绍及Python实现)详解大数据
- zookeeper适用场景:分布式锁实现详解大数据
- HBase 写优化之 BulkLoad 实现数据快速入库详解编程语言
- js中使用ajax请求数据的时候,如何实现return详解编程语言
- MySQL字段触发器:实现数据更新的有效手段(mysql字段触发器)
- MySQL数据库实现分页显示(mysql数据分页显示)
- Oracle数据库批量插入实现详解(oracle数据批量插入)
- 多行MySQL实现一次性插入多行数据(mysql一次性插入)
- 如何实现MySQL跨服务器复制数据?(mysql跨服务器)
- MSSQL数据库实现表间数据复制的方法(mssql表间数据复制)
- MySQL中使用交集操作来实现数据筛选和比较的方法详解(mysql中交集操作)
- ASP与Oracle配合实现数据写入(asp oracle写入)
- MySQL实现数据去重去除重复数据的方法详解(mysql中去重语句)
- 如何实现MySQL数据去固定精度(mysql中去固定精度)
- 把Redis用起来,实现海量数据的高并发优化(redis高并发提升性能)
- 借助Oracle轻松实现数据插入(oracle中插入值)
- 利用Redis集合快速实现批量数据删除(redis集合批量删除)
- Oracle三表内连接查询实现数据更新(oracle三个表内连接)
- jQuery数据缓存data(name,value)详解及实现
- 在liunx中编写一个脚步定期删除mysql中的数据实现步骤