本篇文章给大家分享的是有关hadoop MR maven级代码模板是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、成都做网站、网站设计、网站优化、软件开发、网站改版等服务,在成都十余年的网站建设设计经验,为成都上千多家中小型企业策划设计了网站。关于Maven的使用就不再啰嗦了,网上很多,并且这么多年变化也不大,这里仅介绍怎么搭建Hadoop的开发环境。
1. 首先创建工程
mvn archetype:generate -DgroupId=my.hadoopstudy -DartifactId=hadoopstudy -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
2. 然后在pom.xml文件里添加hadoop的依赖包hadoop-common, hadoop-client, hadoop-hdfs,添加后的pom.xml文件如下
4.0.0 my.hadoopstudy hadoopstudy jar 1.0-SNAPSHOT hadoopstudy http://maven.apache.org org.apache.hadoop hadoop-common 2.5.1 org.apache.hadoop hadoop-hdfs 2.5.1 org.apache.hadoop hadoop-client 2.5.1 junit junit 3.8.1 test
3. 测试3.1 首先我们可以测试一下hdfs的开发,这里假定使用上一篇Hadoop文章中的hadoop集群,类代码如下
package my.hadoopstudy.dfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataOutputStream;import org.apache.hadoop.fs.FileStatus;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IOUtils;import java.io.InputStream;import java.net.URI;public class Test { public static void main(String[] args) throws Exception { String uri = "hdfs://9.111.254.189:9000/"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(uri), config); // 列出hdfs上/user/fkong/目录下的所有文件和目录 FileStatus[] statuses = fs.listStatus(new Path("/user/fkong")); for (FileStatus status : statuses) { System.out.println(status); } // 在hdfs的/user/fkong目录下创建一个文件,并写入一行文本 FSDataOutputStream os = fs.create(new Path("/user/fkong/test.log")); os.write("Hello World!".getBytes()); os.flush(); os.close(); // 显示在hdfs的/user/fkong下指定文件的内容 InputStream is = fs.open(new Path("/user/fkong/test.log")); IOUtils.copyBytes(is, System.out, 1024, true); } }
3.2 测试MapReduce作业测试代码比较简单,如下:
package my.hadoopstudy.mapreduce;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;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.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;import java.io.IOException;public class EventCount { public static class MyMapper extends Mapper
运行“mvn package”命令产生jar包hadoopstudy-1.0-SNAPSHOT.jar,并将jar文件复制到hadoop安装目录下
这里假定我们需要分析几个日志文件中的Event信息来统计各种Event个数,所以创建一下目录和文件
/tmp/input/event.log.1/tmp/input/event.log.2/tmp/input/event.log.3
因为这里只是要做一个列子,所以每个文件内容可以都一样,假如内容如下
JOB_NEW ... JOB_NEW ... JOB_FINISH ... JOB_NEW ... JOB_FINISH ...
然后把这些文件复制到HDFS上
$ bin/hdfs dfs -put /tmp/input /user/fkong/input
运行mapreduce作业
$ bin/hadoop jar hadoopstudy-1.0-SNAPSHOT.jar my.hadoopstudy.mapreduce.EventCount /user/fkong/input /user/fkong/output
查看执行结果
$ bin/hdfs dfs -cat /user/fkong/output/part-r-00000
以上就是hadoop MR maven级代码模板是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。