Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629
Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927
Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955
Hadoop读书笔记(四)HDFS体系结构:http://blog.csdn.net/caicongyang/article/details/41322649
Hadoop读书笔记(五)MapReduce统计单词demo:http://blog.csdn.net/caicongyang/article/details/41453579
Hadoop读书笔记(六)MapReduce自定义数据类型demo:http://blog.csdn.net/caicongyang/article/details/41490379
Hadoop读书笔记(七)MapReduce 0.x版本API使用demo:http://blog.csdn.net/caicongyang/article/details/41493325
0.demo说明
1.代码改造
KpiApp.java
package cmd; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Writable; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.mapreduce.lib.partition.HashPartitioner; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; /** * * <p> * Title: KpiApp.java * Package mapReduce * </p> * <p> * Description: 统计流量 (打包jar命令行运行) :extends Configured implements Tool * <p> * @author Tom.Cai * @created 2014-11-25 下午10:23:33 * @version V1.0 * */ public class KpiApp extends Configured implements Tool{ public static void main(String[] args) throws Exception { ToolRunner.run(new KpiApp(), args); } @Override public int run(String[] arg0) throws Exception { String INPUT_PATH = arg0[0]; String OUT_PATH = arg0[1]; FileSystem fileSystem = FileSystem.get(new URI(INPUT_PATH), new Configuration()); Path outPath = new Path(OUT_PATH); if (fileSystem.exists(outPath)) { fileSystem.delete(outPath, true); } Job job = new Job(new Configuration(), KpiApp.class.getSimpleName()); FileInputFormat.setInputPaths(job, INPUT_PATH); job.setInputFormatClass(TextInputFormat.class); job.setMapperClass(KpiMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(KpiWite.class); job.setPartitionerClass(HashPartitioner.class); job.setNumReduceTasks(1); job.setReducerClass(KpiReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(KpiWite.class); FileOutputFormat.setOutputPath(job, new Path(OUT_PATH)); job.setOutputFormatClass(TextOutputFormat.class); job.waitForCompletion(true); return 0; } static class KpiMapper extends Mapper<LongWritable, Text, Text, KpiWite> { @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] splited = value.toString().split("\t"); String num = splited[1]; KpiWite kpi = new KpiWite(splited[6], splited[7], splited[8], splited[9]); context.write(new Text(num), kpi); } } static class KpiReducer extends Reducer<Text, KpiWite, Text, KpiWite> { @Override protected void reduce(Text key, Iterable<KpiWite> value, Context context) throws IOException, InterruptedException { long upPackNum = 0L; long downPackNum = 0L; long upPayLoad = 0L; long downPayLoad = 0L; for (KpiWite kpi : value) { upPackNum += kpi.upPackNum; downPackNum += kpi.downPackNum; upPayLoad += kpi.upPayLoad; downPayLoad += kpi.downPayLoad; } context.write(key, new KpiWite(String.valueOf(upPackNum), String.valueOf(downPackNum), String.valueOf(upPayLoad), String.valueOf(downPayLoad))); } } } class KpiWite implements Writable { long upPackNum; long downPackNum; long upPayLoad; long downPayLoad; public KpiWite() { } public KpiWite(String upPackNum, String downPackNum, String upPayLoad, String downPayLoad) { this.upPackNum = Long.parseLong(upPackNum); this.downPackNum = Long.parseLong(downPackNum); this.upPayLoad = Long.parseLong(upPayLoad); this.downPayLoad = Long.parseLong(downPayLoad); } @Override public void readFields(DataInput in) throws IOException { this.upPackNum = in.readLong(); this.downPackNum = in.readLong(); this.upPayLoad = in.readLong(); this.downPayLoad = in.readLong(); } @Override public void write(DataOutput out) throws IOException { out.writeLong(upPackNum); out.writeLong(downPackNum); out.writeLong(upPayLoad); out.writeLong(downPayLoad); } }
2.打成jar
通过Eclipse的Export将上述的类打成kpi.jar
将jar包上传到Linux下通过 hadoop jar xxx.jar [parameter] [parameter]命令执行即可
例如:hadoop jar kpi.jarhdfs://192.168.80.100:9000/wlanhdfs://192.168.80.100:9000/wlan_out
即将上篇的代码完成改造可以在命令行下运行!
欢迎大家一起讨论学习!
有用的自己收!
记录与分享,让你我共成长!欢迎查看我的其他博客;我的博客地址:http://blog.csdn.net/caicongyang
相关推荐
hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...
Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,这两个部分都需要一系列的JAR包来支持其正常运行。本资源集合了Maven、HDFS、MapReduce等相关所有JAR包及依赖,为构建基于Hadoop的分布式...
hadoop-mapreduce-examples-2.7.1.jar
这个压缩包文件包含的是Hadoop 1.1.2版本的操作示例,以及与之相关的HBase、Hive和MapReduce的jar包。这些工具是大数据处理生态系统中的核心组件,下面将分别详细介绍它们的功能和用法。 **Hadoop**: Hadoop是...
(1)熟悉Hadoop开发包 (2)编写MepReduce程序 (3)调试和运行MepReduce程序 (4)完成上课老师演示的内容 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 二、实验内容 1.单词计数实验...
要开始在Eclipse中开发MapReduce项目,首先你需要安装以下关键的JAR包,这些包提供了Hadoop MapReduce框架的API和运行时环境: 1. **hadoop-core.jar**:这是Hadoop的主要库,包含了MapReduce的基本组件,如...
这个"hadop jar包.rar"文件可能包含了Hadoop运行所需的各种库文件,如HDFS客户端、MapReduce客户端、Hadoop其他组件的jar包等,使得用户可以直接在本地或者集群上运行Hadoop相关程序,无需自行编译源码。用户在使用...
hadoop-mapreduce-examples-2.6.5.jar 官方案例源码
当你的MapReduce程序完成开发并经过本地测试后,你可以使用Hadoop的命令行工具将其打包成JAR文件,然后提交到集群上执行。 总结来说,"hadoop eclipse mapreduce下开发所有需要用到的JAR包"涉及到的是Hadoop ...
总的来说,"eclipse-linux软件包-包含mapreduce的jar包"是一个方便Linux用户进行大数据处理开发的工具集合,它结合了强大的Eclipse IDE和Hadoop的MapReduce框架,为开发者提供了高效、便捷的开发体验。通过熟悉...
Hadoop的jar包通常包含Hadoop Common、Hadoop HDFS、Hadoop MapReduce等模块,它们提供了Hadoop的基本功能和接口。HBase的jar包则包含了HBase Server、HBase Client、Zookeeper等相关组件,使得开发者可以与HBase...
相关JAR包有`hadoop-mapreduce-client-*.jar`,它包含了MapReduce作业提交、任务执行所需的类库。 5. **Hadoop MRv1 (MapReduce v1)**:早期的MapReduce实现,现在已经逐渐被YARN上的MRv2(也称为YARN-based ...
### Hadoop集群配置及MapReduce开发手册知识点梳理 #### 一、Hadoop集群配置说明 ##### 1.1 环境说明 本手册适用于基于CentOS 5系统的Hadoop集群配置,具体环境配置如下: - **操作系统**:CentOS 5 - **JDK版本...
赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...
为了运行这个 MapReduce 程序,我们需要编写 Java 代码,并将其打包成 JAR 文件。之后,我们可以通过 Hadoop 命令行工具提交作业,指定输入数据路径(NBA 数据文件所在的 HDFS 路径)和输出结果目录。 在实际应用中...
本文将详细介绍如何在Eclipse中使用Hadoop的各种JAR包,包括HDFS、MapReduce、YARN、HTTPFS和KMS,以实现高效的数据操作。 首先,我们需要理解这些组件在Hadoop生态系统中的角色: 1. HDFS(Hadoop Distributed ...
### Hadoop集群配置及MapReduce开发手册知识点梳理 #### 一、Hadoop集群配置 **1.1 环境说明** - **操作系统**: CentOS 5 - **JDK版本**: Sun Java 6 - **SSH**: 已安装 - **Eclipse版本**: 3.4.2 (Linux版) - **...
这些jar包是Hadoop生态系统的关键组成部分,它们提供了核心Hadoop的功能,包括分布式文件系统(HDFS)和MapReduce计算模型。 1. **Hadoop核心**:Hadoop的核心jar包包含HDFS和YARN(Yet Another Resource ...
赠送jar包:hadoop-mapreduce-client-core-2.5.1.jar; 赠送原API文档:hadoop-mapreduce-client-core-2.5.1-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-core-2.5.1-sources.jar; 赠送Maven依赖信息文件:...
包org.apache.hadoop.mapreduce的Hadoop源代码分析