使用Hadoop的MapReduce与HDFS处理数据

hadoop是一个分布式的基础架构,利用分布式实现高效的计算与储存,最核心的设计在于HDFS与MapReduce,HDFS提供了大量数据的存储,mapReduce提供了大量数据计算的实现,通过Java项目实现hadoop job处理海量数据解决复杂的需求。

一、基本环境及相关软件的配置

...

二、hadoop项目开发流程

     hadoop主要的开发为job的初始化与分布式处理流程的开发。

1、任务基本配置

    首相根据业务需求,需要在代码中配置job在每台机器上需要的java虚拟机使用的内存与执行过程需要的最大内存。

Configuration configuration = new Configuration();
configuration.set( "mapreduce.map.java.opts" , "-Xmx2048m" );
configuration.set( "mapreduce.map.memory.mb" , "3072" );
configuration.set( "mapreduce.reduce.java.opts" , "-Xmx2048m" );
configuration.set( "mapreduce.reduce.memory.mb" , "3072" );
Job job = new Job(configuration, "miuilite-dailyRetain-" +arg[ 4 ]);

2、运行参数配置

job.setJarByClass(MiuiliteRetainJob. class );
MultipleOutputs.addNamedOutput(job, MIUIDanfaGeneralMapReduce.MULTI_OUTPUT_NAME_STATUS, SequenceFileOutputFormat. class ,Text. class , Text. class );
job.setOutputFormatClass(SequenceFileOutputFormat. class );
MultipleInputs.addInputPath(job, new Path(arg[ 0 ]), SequenceFileInputFormat. class , MiuiliteRetainMapReduce.NewLogMapper. class );
MultipleInputs .addInputPath(job, new Path(arg[ 1 ]), SequenceFileInputFormat. class , MiuiliteRetainMapReduce.StatusLogMapper. class );
FileOutputFormat.setOutputPath(job, new Path(arg[ 2 ]));
job.setReducerClass(MiuiliteRetainMapReduce.RetainReducer. class );
job.setMapOutputKeyClass(Text. class );
job.setMapOutputValueClass(Text. class );
job.setOutputKeyClass(Text. class );
job.setOutputValueClass(LongWrita
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值