随机数文件,上传到hdfs的特定目录/logs下,用mr求和


随机数文件:

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.henu</groupId><artifactId>henu</artifactId><version>1.0-SNAPSHOT</version><name>henu</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.7.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>utf-8</encoding></configuration></plugin></plugins></build>
</project>

代码:

package com.henu;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
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 java.io.IOException;/*** @author George* @description 随机数文件, 用mr求和** 思路:1、将map阶段的key设置为一个值,然后将读取的值设置为value*    2、reduce阶段通过key进行value的总数计算。**/
public class Sum {public static class SumMapper extends Mapper<LongWritable, Text, Text, IntWritable> {Text k1 = new Text();IntWritable v1 = new IntWritable(1);@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {String line = value.toString();String[] strings = line.split("\\s+");for (String s : strings) {k1.set(1 + "");v1.set(Integer.valueOf(s));context.write(k1, v1);}}}public static class SumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {int result;IntWritable v2 = new IntWritable();@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {result = 0;for (IntWritable value : values) {result += value.get();}v2.set(result);context.write(key, v2);}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass(Sum.class);job.setMapperClass(SumMapper.class);job.setReducerClass(SumReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.setInputPaths(job, new Path("/logs/log_20191027212349"));FileOutputFormat.setOutputPath(job, new Path("/result"));job.waitForCompletion(true);}}

将其打包,过程就不说了前面博客中有:https://blog.csdn.net/qq_41946557/article/details/102785927

然后将其发送到linux上

[root@henu1 ~]# yarn jar henu-1.0-SNAPSHOT.jar com.henu.Sum 

运行:

查看结果:

[root@henu1 ~]# hdfs dfs -cat /result/part-r-00000

over,欢迎指正,其实我是有个小问题的。(⊙o⊙)…

随机数文件,上传到hdfs的特定目录/logs下,用mr求和相关推荐

  1. 大数据之 将txt文件上传到HDFS并用Hive查询

    在生产上,一般对数据清洗之后直接放到HDFS上,再将目录加载到分区表中,之后通过hive去查询分析数据: 1.准备数据 order_created.txt 用 tab分割 10703007267488 ...

  2. 通过Java程序将“/你的名字拼音缩写/input1/shixun1.txt”文件上传到HDFS的“/你的名字拼音缩写/java/input1/”目录下;通过Java程序将HDFS上的“/你的名字拼音

    题目: 通过Java程序将"/你的名字拼音缩写/input1/shixun1.txt"文件上传到HDFS的"/你的名字拼音缩写/java/input1/"目录下 ...

  3. FTP压缩文件上传到HDFS大小不一致的问题说明(FTP传输模式)

    1.问题:将ftp文件服务器上的压缩文件通过内存流直接写入HDFS内,却发现文件不一致,MD5SUM校验也不一致. 2.分析: FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式. 1)A ...

  4. php 多个 csv 文件,php - 如何将CSV文件上传到多个数据库目录中? - SO中文参考 - www.soinside.com...

    这里是一个示例,如果您想在db中上传csv文件,请>public function upload(Request $request){ //upload csv $file = $request ...

  5. 6.HDFS文件上传和下载API

    HDFS文件上传和下载API package hdfsAPI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop ...

  6. day34 文件上传黑白盒审计逻辑中间件外部引用

    前言 #知识点: 1.白盒审计三要素 2.黑盒审计四要素 3.白黑测试流程思路 #详细点: 1.检测层面:前端,后端等 2.检测内容:文件头,完整性,二次渲染等 3.检测后缀:黑名单,白名单,MIME ...

  7. .htaccess文件上传解析漏洞

    测试环境 upload-labs靶场(Pass-04) .htaccess原理 .htaccess文件是Apache服务器下的一个配置文件.其主要负责相关目录下的网页配置,即:在一个特定的文档目录中放 ...

  8. Spring Boot 2.x基础教程:实现文件上传

    文件上传的功能实现是我们做Web应用时候最为常见的应用场景,比如:实现头像的上传,Excel文件数据的导入等功能,都需要我们先实现文件的上传,然后再做图片的裁剪,excel数据的解析入库等后续操作. ...

  9. PHP新手上路文件上传

    你可以利用PHP实现文件的上传功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上的版本.同时,因为本程序与你的PHP配置文件(PHP3为php3.ini,PHP4为php.in)设置有 ...

最新文章

  1. 基于jQuery图片自适应排列显示代码
  2. 用户家目录下的隐藏文件
  3. .中英文系统底层编码导致乱码问题
  4. 某石油公司100-500人办公网络方案设计
  5. 【php】目录操作 文件操作
  6. Xcode生成的可执行文件在哪里
  7. 【小题目】输入一个数字表示重量,如果重量<=20,则每千克收费0.35元;如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费;如果超过100千克,则超过的范围按照每千克0.8元
  8. 地址已经被使用——Address already in use(来自《后台开发:核心技术于应用实践》)
  9. Log4j详细设置说明
  10. SharePoint 常见问题
  11. 从C++到.NET 揭开多态的面纱
  12. 【Java】DNS缓存
  13. ICMP(网际控制报文协议)
  14. 【Android综合应用】概述
  15. 关于Lattic Diamond软件安装不成功问题(license问题)
  16. 冰点还原离线激活_冰点还原密钥,小编告诉你如何激活冰点还原
  17. css border属性简写
  18. 《平凡的世界》造就不平凡的人生 --路遥
  19. Google 人工智能基本原则
  20. CSCD刊源(2007年-2008年)

热门文章

  1. 剑指-二维数组中的查找
  2. 中石油训练赛 - Swapity Swap(矩阵快速幂)
  3. oracle输出异常,表导出出现异常,无法继续。
  4. python 链表推导式_五--python之数据结构(Data Structures)
  5. js:点击button后返回值
  6. 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)
  7. 求n!,C(n,m)和A(n,m)最后的非零位。
  8. STL中的find_if函数
  9. MFC六大核心机制之二:运行时类型识别(RTTI)
  10. Django环境搭建