- 浏览: 24927 次
- 性别:
- 来自: 上海
最新评论
一个简单的业务场景和例子。由wordcount例子改写。
业务场景:
每个用户有在线事件,并带有日志。分析一段时间内的在线的用户以及他们的事件数。
备注:假设事件日志中以逗号分割字段,第5个字段为用户识别码
job报告部分:
13/08/30 15:25:50 INFO mapred.JobClient: Job complete: job_local206120026_0001
13/08/30 15:25:50 INFO mapred.JobClient: Counters: 22
13/08/30 15:25:50 INFO mapred.JobClient: File Output Format Counters
13/08/30 15:25:50 INFO mapred.JobClient: Bytes Written=40450120
13/08/30 15:25:50 INFO mapred.JobClient: FileSystemCounters
13/08/30 15:25:50 INFO mapred.JobClient: FILE_BYTES_READ=907603353
13/08/30 15:25:50 INFO mapred.JobClient: HDFS_BYTES_READ=4244630128
13/08/30 15:25:50 INFO mapred.JobClient: FILE_BYTES_WRITTEN=1520436699
13/08/30 15:25:50 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=40450120
13/08/30 15:25:50 INFO mapred.JobClient: File Input Format Counters
13/08/30 15:25:50 INFO mapred.JobClient: Bytes Read=612273464
13/08/30 15:25:50 INFO mapred.JobClient: Map-Reduce Framework
13/08/30 15:25:50 INFO mapred.JobClient: Reduce input groups=2886293
13/08/30 15:25:50 INFO mapred.JobClient: Map output materialized bytes=103629708
13/08/30 15:25:50 INFO mapred.JobClient: Combine output records=12122417
13/08/30 15:25:50 INFO mapred.JobClient: Map input records=8895828
13/08/30 15:25:50 INFO mapred.JobClient: Reduce shuffle bytes=0
13/08/30 15:25:50 INFO mapred.JobClient: Physical memory (bytes) snapshot=0
13/08/30 15:25:50 INFO mapred.JobClient: Reduce output records=2886293
13/08/30 15:25:50 INFO mapred.JobClient: Spilled Records=17879555
13/08/30 15:25:50 INFO mapred.JobClient: Map output bytes=126802892
13/08/30 15:25:50 INFO mapred.JobClient: CPU time spent (ms)=0
13/08/30 15:25:50 INFO mapred.JobClient: Total committed heap usage (bytes)=8510898176
13/08/30 15:25:50 INFO mapred.JobClient: Virtual memory (bytes) snapshot=0
13/08/30 15:25:50 INFO mapred.JobClient: Combine input records=15261107
13/08/30 15:25:50 INFO mapred.JobClient: Map output records=8895828
13/08/30 15:25:50 INFO mapred.JobClient: SPLIT_RAW_BYTES=1340
13/08/30 15:25:50 INFO mapred.JobClient: Reduce input records=5757138
业务场景:
每个用户有在线事件,并带有日志。分析一段时间内的在线的用户以及他们的事件数。
备注:假设事件日志中以逗号分割字段,第5个字段为用户识别码
public class ActiveUserMapper extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text user = new Text(); protected void map(Object key, Text value, Context context) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString(), ","); int index = 0; while (itr.hasMoreTokens()) { if (index == 4) { user.set(itr.nextToken()); context.write(user, one); break; } else { itr.nextToken(); } index++; } } }
public class ActiveUserReducer extends Reducer<Text, IntWritable, Text, IntWritable> { private IntWritable events = new IntWritable(); @Override protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } events.set(sum); context.write(key, events); } }
public class ActiveUserMRDriver extends Configured implements Tool { @Override public int run(String[] args) throws Exception { if(args.length != 2){ System.out.printf("Usage %s [generic options] <in> <out>\n", getClass().getName()); ToolRunner.printGenericCommandUsage(System.out); return -1; } Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://node04vm01:9000"); Job job = new Job(conf, "active user analyst"); job.setJarByClass(ActiveUserMRDriver.class); job.setMapperClass(ActiveUserMapper.class); job.setCombinerClass(ActiveUserReducer.class); job.setReducerClass(ActiveUserReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); return job.waitForCompletion(true) ? 0 : 1; } public static void main(String[] args) throws Exception { int exitCode = ToolRunner.run(new ActiveUserMRDriver(), args); System.exit(exitCode); } }
job报告部分:
13/08/30 15:25:50 INFO mapred.JobClient: Job complete: job_local206120026_0001
13/08/30 15:25:50 INFO mapred.JobClient: Counters: 22
13/08/30 15:25:50 INFO mapred.JobClient: File Output Format Counters
13/08/30 15:25:50 INFO mapred.JobClient: Bytes Written=40450120
13/08/30 15:25:50 INFO mapred.JobClient: FileSystemCounters
13/08/30 15:25:50 INFO mapred.JobClient: FILE_BYTES_READ=907603353
13/08/30 15:25:50 INFO mapred.JobClient: HDFS_BYTES_READ=4244630128
13/08/30 15:25:50 INFO mapred.JobClient: FILE_BYTES_WRITTEN=1520436699
13/08/30 15:25:50 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=40450120
13/08/30 15:25:50 INFO mapred.JobClient: File Input Format Counters
13/08/30 15:25:50 INFO mapred.JobClient: Bytes Read=612273464
13/08/30 15:25:50 INFO mapred.JobClient: Map-Reduce Framework
13/08/30 15:25:50 INFO mapred.JobClient: Reduce input groups=2886293
13/08/30 15:25:50 INFO mapred.JobClient: Map output materialized bytes=103629708
13/08/30 15:25:50 INFO mapred.JobClient: Combine output records=12122417
13/08/30 15:25:50 INFO mapred.JobClient: Map input records=8895828
13/08/30 15:25:50 INFO mapred.JobClient: Reduce shuffle bytes=0
13/08/30 15:25:50 INFO mapred.JobClient: Physical memory (bytes) snapshot=0
13/08/30 15:25:50 INFO mapred.JobClient: Reduce output records=2886293
13/08/30 15:25:50 INFO mapred.JobClient: Spilled Records=17879555
13/08/30 15:25:50 INFO mapred.JobClient: Map output bytes=126802892
13/08/30 15:25:50 INFO mapred.JobClient: CPU time spent (ms)=0
13/08/30 15:25:50 INFO mapred.JobClient: Total committed heap usage (bytes)=8510898176
13/08/30 15:25:50 INFO mapred.JobClient: Virtual memory (bytes) snapshot=0
13/08/30 15:25:50 INFO mapred.JobClient: Combine input records=15261107
13/08/30 15:25:50 INFO mapred.JobClient: Map output records=8895828
13/08/30 15:25:50 INFO mapred.JobClient: SPLIT_RAW_BYTES=1340
13/08/30 15:25:50 INFO mapred.JobClient: Reduce input records=5757138
发表评论
-
[实验]avro与non-avro的mapred例子-wordcount改写
2013-09-03 16:15 1052avro非常适合用于hadoop。在开发的时候可能有这样的场景 ... -
[实验]hadoop例子 trackinfo数据清洗的改写
2013-09-03 10:42 1090之前的“trackinfo数据清洗”例子中为使用combine ... -
[笔记]hadoop tutorial - Reducer
2013-09-03 10:15 736引用Reducer reduces a set of inte ... -
[实验]hadoop例子 trackinfo数据清洗
2013-09-02 17:24 2568业务场景: 假设用户在某处(例如某个网页或者某个地点)的活动会 ... -
[环境] hadoop 开发环境maven管理
2013-09-02 17:02 1467贴一下整理的maven管理配置(待补充) <proj ... -
[笔记]avro 介绍及官网例子
2013-09-02 14:22 3894Apache Avro是一个独立于编程语言的数据序列化系统。旨 ... -
[笔记]hadoop mapred InputFormat分析
2013-08-30 13:43 1274Hadoop MapReduce的编程接口层主要有5个可编程组 ... -
[笔记]hdfs namenode FSNamesystem分析
2013-08-30 09:18 1153NameNode在内存中维护整个文件系统的元数据镜像,用于HD ... -
[笔记]hdfs namenode FSImage分析1
2013-08-29 15:10 1886元数据文件fsimage的分析 fsimage为元数据镜像文件 ... -
[实验]集群hadoop配置
2013-08-28 16:53 854环境 hadoop1.2.0 CentOS release ... -
[实验]单机hadoop配置
2013-08-28 14:16 614环境: hadoop1.2.0 配置 修改conf/core ... -
[问题解决]hadoop eclipse plugin
2013-08-27 09:22 982环境: hadoop 1.2.0 问题: eclipse报错& ...
相关推荐
在陌陌聊天数据的例子中,Hive可以帮助我们组织和管理聊天记录,使其更易于分析。 3. **FineBI**:这是一款强大的商业智能工具,支持自助式数据分析和可视化。FineBI能够直接连接到Hadoop或Hive,提取数据并创建...
【描述】中的“hadoop test cesi 代码 粒子 例子”可能是指进行Hadoop测试的代码示例,其中“cesi”可能是项目或测试用例的缩写,而“粒子”可能是指数据粒度或处理的特定部分。这暗示我们将深入理解Hadoop的测试...
根据提供的文档信息,我们可以将Hadoop应用开发的相关知识点进行详细阐述。...通过以上几个实验的学习,可以全面掌握Hadoop的基本操作和应用开发流程,为进一步深入学习Hadoop的大数据处理技术打下坚实的基础。
-_11.11_storm-spark-hadoophadoop_storm_spark结合实验的例子,模拟淘宝双11节,根据订单详细信息,汇总出总销售量,各个省份销售排行,以及后期SQL分析,数据分析,数据挖掘等。--------大概流程-------第一阶段...
在这个实验中,我们使用了Hadoop 3.2.2版本。 实验的目标是合并两个输入文件A和B,并去除其中重复的内容,生成一个新的输出文件C。输入文件A和B包含一些日期和对应的字符,例如: ``` 20170101 x 20170102 y ... ``...
- **Hadoop实验平台配置**:项目使用Hadoop Distributed File System (HDFS)进行数据存储,并且在实验平台中进行了相应的配置。 - **Nutch搜索引擎**:建立在Hadoop之上的开源搜索引擎,利用HDFS作为存储索引数据的...
实验1:安装单机Hadoop系统与WordCount词频统计,是学习Hadoop的典型实践。WordCount是Hadoop示例程序,用于统计文本中单词出现的频率,它是理解MapReduce工作流程的直观例子。 在软件环境中,Hadoop运行在Linux...
综上所述,MapReduce应用案例文档深入地介绍了MapReduce编程模型在Hadoop生态系统中的实际使用,包括对join操作的细节分析,以及如何搭建Hadoop环境,如何上传和管理测试数据。此外,文档还提供了Hadoop学习资源的...
###### 6.1 查看Hadoop自带的例子 ```bash hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar ``` 可以看到Hadoop提供的一些示例程序。 ###### 6.2 在HDFS中创建用户目录...
实验让学生通过建立实际例子理解MapReduce的工作流程,包括数据切片、Map函数的执行和Reduce函数的聚合。 通过这些实验,学生能够深入理解大数据技术的基础,为后续的大数据应用开发和分析奠定坚实的基础。在实验...
实验中创建例子文件并上传到HDFS,这是HDFS的基本操作。MapReduce则是一种并行处理模型,由“Map”阶段和“Reduce”阶段组成。Map阶段将数据拆分成独立的键值对,处理后将结果传递给Reduce阶段进行聚合,最终生成...
综上所述,文档详细介绍了MapReduce数据分析的实战技巧和步骤,通过具体的例子展示了如何利用Hadoop进行大规模数据处理。文中不仅包含了MapReduce的基础概念,还提供了许多实用的代码片段和操作细节,为有志于深入...
云计算是一种通过互联网提供计算资源和服务的模式,它允许用户按需访问和使用存储、计算能力、应用程序和其他IT资源,而无需直接拥有和维护这些资源。这个实验报告聚焦于20级学生的云计算学习体验,其中包含了编程...
Spark是一种开源的分布式大数据处理框架,其上机实验手册是针对想要独立完成Spark安装部署和基础开发学习的用户设计的。通过这份手册,用户可以在没有任何课堂辅导的情况下,自行完成安装、配置和基础的编程实践。 ...
保存并退出编辑器,然后切换到 `hadoop` 用户并执行 `source /etc/profile` 命令,使环境变量更改立即生效。 3. **Flume组件部署**: - **步骤一**:确保已经完成了环境变量的设置,并使其对所有用户生效。 - **...
### MapReduce基础实战详解 ...MapReduce不仅适用于简单的单词计数任务,还广泛应用于搜索引擎索引构建、用户行为分析等复杂场景。希望这次实战能帮助你更好地掌握MapReduce技术,并能在未来的工作中灵活运用。
Linux操作系统下进行实验。 Apache Spark简介(摘自) Apache Spark是一个开源集群运算框架,最初是由加州大学柏克莱分校AMPLab所开发。 相对于HadoopMapReduce会在运行完工作后将中介数据存放到磁盘中,Spark使用了...
在电子工程领域,门铃设计通常包括信号传输、音频处理以及用户交互等部分。在这个项目中,我们看到一个与开发板相关的程序,这表明我们可以用编程语言来实现门铃的控制功能。 简单门铃设计的代码可能是用微控制器...
《纽约时报》利用亚马逊的云计算服务,配合开源软件Hadoop,实现了大量报纸档案的快速数字化,这是云计算高效率的一个典型例子。 云计算的关键技术包括虚拟化,使得物理资源能够被分割成多个虚拟资源供多个用户使用...
Chukwa是建立在Hadoop上的数据收集系统,用以监控和分析大规模的分布式系统。本文介绍了他的设计和初步实施。 3、 Cloud Computing and Grid Computing 360-Degree Compared Ian Foster比较对比了云计算和网格...