Hadoop之MapReduce实战(三)

作者: 云计算机网 分类: 云计算知识 发布时间: 2019-03-17 15:55

本文提供一个以Hadoop MapReduce方式统计文本中每个单词的数量的例子,不多说,直接上代码

package com.lyz.hadoop.count;import java.net.URI;import org.apache.hadoop.conf.Configuration;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.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;/** * 利用Hadoop MapReduce统计文本中每个单词的数量 * @author liuyazhuang */public class WordCount {//要统计的文件位置static final String INPUT_PATH = "hdfs://liuyazhuang:9000/d1/hello";//统计结果输出的位置static final String OUT_PATH = "hdfs://liuyazhuang:9000/out";public static void main(String[] args) throws Exception {Configuration conf = new Configuration();final FileSystem fileSystem = FileSystem.get(new URI(INPUT_PATH), conf);final Path outPath = new Path(OUT_PATH);//如果已经存在输出文件,则先删除已存在的输出文件if(fileSystem.exists(outPath)){fileSystem.delete(outPath, true);}final Job job = new Job(conf , WordCount.class.getSimpleName());//1.1指定读取的文件位于哪里FileInputFormat.setInputPaths(job, INPUT_PATH);//指定如何对输入文件进行格式化,把输入文件每一行解析成键值对job.setInputFormatClass(TextInputFormat.class);//1.2 指定自定义的map类job.setMapperClass(MyMapper.class);//map输出的<k,v>类型。如果<k3,v3>的类型与<k2,v2>类型一致,下面两行代码可以省略job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(LongWritable.class);//1.3 分区job.setPartitionerClass(HashPartitioner.class);//有一个reduce任务运行job.setNumReduceTasks(1);//1.4 TODO 排序、分组//1.5 TODO 规约//2.2 指定自定义reduce类job.setReducerClass(MyReducer.class);//指定reduce的输出类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.class);//2.3 指定写出到哪里FileOutputFormat.setOutputPath(job, outPath);//指定输出文件的格式化类job.setOutputFormatClass(TextOutputFormat.class);//把job提交给JobTracker运行job.waitForCompletion(true);}/** * KEYIN即k1表示行的偏移量 * VALUEIN即v1表示行文本内容 * KEYOUT即k2表示行中出现的单词 * VALUEOUT即v2表示行中出现的单词的次数,固定值1 */static class MyMapper extends Mapper<LongWritable, Text, Text, LongWritable>{protected void map(LongWritable k1, Text v1, Context context) throws java.io.IOException ,InterruptedException {final String[] splited = v1.toString().split("");for (String word : splited) {context.write(new Text(word), new LongWritable(1));}};}/** * KEYIN即k2表示行中出现的单词 * VALUEIN即v2表示行中出现的单词的次数 * KEYOUT即k3表示文本中出现的不同单词 * VALUEOUT即v3表示文本中出现的不同单词的总次数 * */static class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable>{protected void reduce(Text k2, java.lang.Iterable<LongWritable> v2s, Context ctx) throws java.io.IOException ,InterruptedException {long times = 0L;for (LongWritable count : v2s) {times += count.get();}ctx.write(k2, new LongWritable(times));};}} 
  • 至顶网服务器频道 07月13日 新闻消息(文/李祥敬):在这个言必称智能的时代,数据成为香饽饽,数据为王。不过一个不容忽视的问题是数据如何转换为驱动企业业务创新的价值。

    这肯定离不开计算,如今在云大物移的驱动下,计算需求无处不在,业务种类越来越多,数据中心服务器部署规模越来越大,服务器不再是一个黑乎乎的盒子,而需要更加智能,以灵活适配多种业务负载与计算需求,且运维要智能高效,以提升服务器的计算资源使用效率、降低管理成本。

    在这样的背景下,华为发布了无边界计算服务器战略及系列解决方案,该战略聚焦行业数字化转型需求,规划了华为未来5年计算创新路线图,从而帮助客户创造切实价值。

    发布会上,华为联合工商银行、腾讯、SAP以及微软等客户与合作伙伴联合介绍当前计算发展的挑战和对应解决方案,发布了FusionServer V5系列5大智能特性,大数据应用加速解决方案,全闪存SAP HANA一体机解决方案,G系列异构计算平台,以及视频边缘智能分析解决方案等。

    计算发展的新起点无边界计算

    现在人工智能风生水起,异构计算成为企业需要面对的新常态。同时,云数据中心已经从最初的效率为王向智能演进,自动化、智能化成为主基调。

    行业数字化转型下,计算发展的新起点已经到来。在华为看来,我们需要以更宽广的视界看计算。在智能社会,从服务器本身到数据中心内部再到数据源,打破限制计算效率提升的桎梏,实现无边界计算。

    华为企业BG Marketing与解决方案销售部总裁袁千告诉至顶网记者,2016年华为企业业务BG作为华为公司的战略发展方向和主要的增长点,实现了销售收入407亿人民币,同比增长47%,其中作为IT基石的服务器,为华为企业BG的增长作出了巨大的贡献。

    今年华为在企业业务领域发布了平台+生态的战略,就是基于技术上高强度的投入,提供创新、差异化、领先的ICT硬件基础设施和软件基础设施,打造一个开放、弹性、安全、灵活的平台,并从产业联盟、商业联盟、开发者平台、开源社区四个方面建立可持续发展的生态系统,我们希望能够与合作伙伴进行联合创新,共同助力客户实现数字化转型。袁千说。

    很显然,无边界计算定调了华为在计算领域的方向,从而驱动华为企业业务的发展,帮助行业客户实现数字化转型。

    无边界计算到底是什么样的计算?

    在华为企业BG中国区副总裁刘超看来,从本地计算的集群到超大规模的数据中心运算,从边缘计算到端云协同,计算必将无处不在。

    在这种无处不在的计算中,华为无边界计算要打破各种计算的边界,构建一个全联接世界。#p#分页标题#e#

    华为IT服务器产品线总裁邱隆表示,华为之所以选择在这个时点发布无边界计算战略,其实是有很多考虑的。

    首先是华为在服务器市场的长期耕耘,在过去五年时间里,华为服务器一路砥砺前行,2017年Q1出货量做到了全球的前三 (2017Q1,Gartner)。同时,华为也在合作伙伴与客户的帮助下构建了全面的计算生态。

    基于此,我们提出无边界计算,希望推动整个计算产业的发展。这个战略也是对华为服务器未来五年的一个定位。邱隆说。

    具体来说,无边界计算的内涵包括:面向应用优化,让计算靠近数据,充分释放计算潜力;打破服务器边界,实现DC级别的资源池化和按需供给,提升DC整体计算效率;打破DC边界,使能智能接入,计算走进数据源,让数据在远端智能起来。

    无边界计算本质上就是通往全联接世界的计算创新之路,华为计算产业从释放计算潜力、到打破服务器边界、再到打破数据中心边界,来全方位实现计算效率的持续提升,为构建全联接世界打下坚实的基础。邱隆说。

    在释放计算潜力方面,一个是摩尔定律下传统CPU在应多智能时代的计算需求方面已经力不从心,于是我们看到了GPU、FPGA、SoC等形态的芯片的雄起。

    为此,华为服务器继续以CPU为中心,但是在CPU的基础上,进行了诸多创新。比如支持异构计算,在CPU的基础上支持各种加速器芯片;I/O提升,包括存储与网络;在传统CPU上进行创新,实现多个CPU的连接,满足单机应性能要求特别高的场景。

    在打破服务器边界上,针对现有数据中心的需求,华为构建了下一代云硬件平台,实现数据中心级别的资源池化,实现资源的按需供给。

    而打破数据中心边界,则是实现云端协同,发展边缘计算。在行业数字化转型过程中,如果单纯依赖于云计算,就必须保证端和云之间绝对的无缝联接,这将给云端带来可怕的巨大压力。

    而通过将边缘计算作为统一的联接、计算、存储和应用平台,能够满足业务实时性,同时能够简化边缘和云的集成,还可以降低广域网络和云计算平台的开销与成本。

    华为将提供一个智能接入平台,实现数据的存储、计算、分析三位一体,让数据尽快在远端智能起来。邱隆说。

    总之,邱隆表示,在无边界计算战略下,我们面向应用进行优化,不管是异构的各种处理器卸载,还是专用的芯片,释放计算潜能;面向数据中心,我们会打破服务器的边界,实现数据中心的共享,把所有的数据中心变成一个资源池。不管是传统的企业,还是我们的云客户,都能从中受益;最后我们希望构建一个智能接入的平台,让万物尽快地智能互联起来。

    华为IT服务器产品线总裁邱隆(左)和华为IT产品线服务器市场营销总监武湛(右)#p#分页标题#e#

    FusionServer V5是华为无边界计算的落地

    无边界计算战略透露了华为对于下一代计算的思考,而这种思考的成果就是FusionServer V5服务器产品。

    华为IT产品线服务器市场营销总监武湛表示,混合IT场景下传统负载、新兴负载,以及云化、非云化业务并存,FusionServer V5采用自适应设计理念,对服务器的计算、存储、网络、管理和节能等5个方面进行了智能升级。

    智能计算,支持对应用透明的异构加速,这包括CPU、FPGA、GPU计算,提升计算效率,满足多种业务负载所需。

    武湛说,华为的FPGA相关研发人员已经过千,实际商用的IP上百。这充分显示了华为在异构计算方面的投入。

    智能存储,SAS/SATA/NVMe可混插,从性能型到容量型灵活组合。SAS/SATA/NVMe可混插,满足未来业务所需保护既有投资;NVMe SSD的SRV的功能支持多流特性并分配不同的优先级;NVMe SSD支持硬RAID,既快又稳。

    智能网络,丰富LOM设计,可配置华为创新的可编程融合网卡,支持IO加速、DPDK、RDMA协议,25GE和32G FC兼容互通。

    智能管理,嵌入式FDM故障深度诊断专利技术,针对引发系统黑屏宕机的Caterr/IERR等严重故障诊断成功率达到突破性的93%;具备自学习能力的诊断与预警引擎。

    武湛介绍说,FDM全称为Fault Diagnose Management,即故障诊断管理系统,它是华为具备自有知识产权的服务器故障诊断系统。FDM由多位高端技术专家经过多年的时间,与多个部件/芯片供应商进行技术研究与合作,从BMC、BIOS等各类部件Frimware上做定制化开发,旨在系统地解决服务器架构下的各类硬件故障定位,大幅提升和扩展x86架构的RAS特性。

    FDM实现了故障数据的全方位自动抓取,把所有的故障数据汇聚到BMC,由BMC在带外做更进一步的故障分析、定位、预告警等功能。最后,华为基于BMC建立了一套故障诊断专家系统,当系统发生严重故障时可以通过已收集的故障数据来自动定位故障源并提供故障解决方案。据悉,华为服务器FDM至少可以定位93%以上由于CPU、内存、PCH、PCIe、QPI等硬件或链路引起的系统崩溃的各类错误。

    智能节能,嵌入式DEMT动态能源管理专利技术、MIMO节能热设计风扇调速、节能管理及性能优化等节能技术,在CPU负载不变的情况下整机能效降低高达16%,有效节省能耗开支。

    应该说,FusionServer V5构建了一个端到端的智能计算平台,这个平台彻底打破边界,为企业充分释放计算潜力。

    写在最后

    无边界计算,华为对于智能时代的计算思考。基于华为在服务器市场的耕耘,以及合作伙伴的助力,FusionServer V5是华为的诚意之做。应该说,计算并没有随着时代演进而褪色,相反,其呈现了多样化的创新局面。华为的无边界计算也在丰富着计算市场,助力客户在数字化时代进行行业转型。#p#分页标题#e#

  • 相关推荐:

  • 主打无边界计算从Fusio
  • 一大战略三大特色且看新
  • TowerProLiants之征途:HPE在
  • 戴尔携AMD开展EPYC服务器
  • 迎接新数据时代浪潮新一
  • 系统之家一键安装系统
  • win10应用安装位置修改方
  • 电脑c盘空间越来越小
  • 宽带连接错误797解决办法
  • GitNote
  • 网站内容禁止违规转载,转载授权联系中国云计算网