前几天给大家写了个hadoop文件系统的操作类,今天来实际应用一下:从本地文件系统读入一个文件,运算后将结果再写回本地。
闲话少说,直接上代码:
public class mywordcount { public static class wordcountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException{ String line = value.toString(); StringTokenizer itr = new StringTokenizer(line); while(itr.hasMoreElements()){ word.set(itr.nextToken()); context.write(word, one); } } } public static class wordcountReduce extends Reducer<Text, IntWritable, Text, IntWritable>{ public void reduce(Text key, Iterable<IntWritable>values, Context context)throws IOException, InterruptedException{ int sum = 0; for (IntWritable str : values){ sum += str.get(); } context.write(key, new IntWritable(sum)); } } public static void main(String args[])throws Exception{ //首先定义两个临时文件夹,这里可以使用随机函数+文件名,这样重名的几率就很小。 String dstFile = "temp_src"; String srcFile = "temp_dst"; //这里生成文件操作对象。 HDFS_File file = new HDFS_File(); Configuration conf = new Configuration(); //从本地上传文件到HDFS,可以是文件也可以是目录 file.PutFile(conf, args[1], dstFile); System.out.println("up ok"); Job job = new Job(conf, "mywordcount"); job.setJarByClass(mywordcount.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(wordcountMapper.class); job.setReducerClass(wordcountReduce.class); job.setCombinerClass(wordcountReduce.class); //注意这里的输入输出都应该是在HDFS下的文件或目录 FileInputFormat.setInputPaths(job, new Path(dstFile)); FileOutputFormat.setOutputPath(job, new Path(srcFile)); //开始运行 job.waitForCompletion(true); //从HDFS取回文件保存至本地 file.GetFile(conf, srcFile, args[2]); System.out.println("down ok"); //删除临时文件或目录 file.DelFile(conf, dstFile, true); file.DelFile(conf, srcFile, true); System.out.println("del ok"); } }
最后需要注意的是,在使用命令时文件或目录路径要使用绝对路径,防止出错。
您还没有登录,请您登录后再发表评论
在hadoop中,有三大法宝——HDFS,MapReduce,Hbase,但是无论是MapReduce,Hbase还是hadoop中的其他组件如:Hive等他们要处理的...可见HDFS可以说是hadoop存储的基础和核心,因此对HDFS的文件读写操作显得十分重要。
这个文档讲述了hadoop2的文件读写原理,不过是英文的,英文不好的同学下载的时候,要谨慎了
在Hadoop的分布式文件系统下,对文件的读写和列出文件的相关属性和目录中的内容
2.在hadoop中新建文件,并写入 3.删除hadoop上的文件 4.读取文件 5.文件修改时间 二.目录操作 1.在hadoop上创建目录 2.删除目录 3.读取某个目录下的所有文件 三.hdfs信息 1.查找某个文件在HDFS集群中位置 2.获取HDFS...
windows安装需要的Hadoop库文件,windows安装需要的Hadoop库文件.
Win本地执行Hadoop所需文件,本人博客(邵奈一CSDN)有配套教程:Windows本地安装Hadoop,请自行搜索,谢谢。
hadoop的dll文件 hadoop.zip
hadoop2.4.0 本地库(64位),本人在64位机子上亲自编译源代码后得到的本地库,经测试完全可用
■ HDFS 提供什么功能 ■ HDFS 如何读取和写入文件 ■ NameNode 如何使用内存 ■ Hadoop 如何提供文件安全性 ■ 如何使用NameNode Web UI ■ 如何使用Hadoop 文件Shell
Hadoop 2.2.0 配置文件 在4台CentOs 6.4版本下运行成功
Hadoop3.1.3 配置文件
基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题...
hadoop的默认配置文件,下载记得关注我哦
基于hadoop Java接口 文件操作类,对hadoop服务进行增删改查等系列操作,非常实用
hadoop:1.0.4 修改JobTracker源码,把JobTracker启动时间写入文件/...只需替换hadoop-core-1.0.4.jar文件,然后重启系统集群即可,启动后就可以在hdfs文件系统看到/private/jobtracker/starttime中有的启动时间。
Windows本地来测试hadoop的文件,方便进行快速的开发和迭代
windows下使用Java在eclipse或者idea中开发Hadoop程序必须使用的本地库文件
Hadoop HA 集群搭建所需要的配置文件:core-site,hdfs-site,mapred-site,yarn-site四个xml文件和一个slaves文件
hadoop的64位本地库,自己编译本地库比较麻烦,于是共享出来.
Hadoop 在大数据运算中的限制 Hadoop不是万能的,实时运算及统计中,Hadoop还是有很多限制的。这篇文章论述了这些限制,指出了 Hadoop 运用上的一些误区。值得一读。
相关推荐
在hadoop中,有三大法宝——HDFS,MapReduce,Hbase,但是无论是MapReduce,Hbase还是hadoop中的其他组件如:Hive等他们要处理的...可见HDFS可以说是hadoop存储的基础和核心,因此对HDFS的文件读写操作显得十分重要。
这个文档讲述了hadoop2的文件读写原理,不过是英文的,英文不好的同学下载的时候,要谨慎了
在Hadoop的分布式文件系统下,对文件的读写和列出文件的相关属性和目录中的内容
2.在hadoop中新建文件,并写入 3.删除hadoop上的文件 4.读取文件 5.文件修改时间 二.目录操作 1.在hadoop上创建目录 2.删除目录 3.读取某个目录下的所有文件 三.hdfs信息 1.查找某个文件在HDFS集群中位置 2.获取HDFS...
windows安装需要的Hadoop库文件,windows安装需要的Hadoop库文件.
Win本地执行Hadoop所需文件,本人博客(邵奈一CSDN)有配套教程:Windows本地安装Hadoop,请自行搜索,谢谢。
hadoop的dll文件 hadoop.zip
hadoop2.4.0 本地库(64位),本人在64位机子上亲自编译源代码后得到的本地库,经测试完全可用
■ HDFS 提供什么功能 ■ HDFS 如何读取和写入文件 ■ NameNode 如何使用内存 ■ Hadoop 如何提供文件安全性 ■ 如何使用NameNode Web UI ■ 如何使用Hadoop 文件Shell
Hadoop 2.2.0 配置文件 在4台CentOs 6.4版本下运行成功
Hadoop3.1.3 配置文件
基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题报告.pdf基于Hadoop的在线文件管理系统-开题...
hadoop的默认配置文件,下载记得关注我哦
基于hadoop Java接口 文件操作类,对hadoop服务进行增删改查等系列操作,非常实用
hadoop:1.0.4 修改JobTracker源码,把JobTracker启动时间写入文件/...只需替换hadoop-core-1.0.4.jar文件,然后重启系统集群即可,启动后就可以在hdfs文件系统看到/private/jobtracker/starttime中有的启动时间。
Windows本地来测试hadoop的文件,方便进行快速的开发和迭代
windows下使用Java在eclipse或者idea中开发Hadoop程序必须使用的本地库文件
Hadoop HA 集群搭建所需要的配置文件:core-site,hdfs-site,mapred-site,yarn-site四个xml文件和一个slaves文件
hadoop的64位本地库,自己编译本地库比较麻烦,于是共享出来.
Hadoop 在大数据运算中的限制 Hadoop不是万能的,实时运算及统计中,Hadoop还是有很多限制的。这篇文章论述了这些限制,指出了 Hadoop 运用上的一些误区。值得一读。