当前位置: 首页 > news >正文

极验验证 wordpress济南做seo的公司排名

极验验证 wordpress,济南做seo的公司排名,北京网站设计与制作,h5设计制作是什么意思文章目录 官方WordCount源码MapReduce编程规范常用数据序列化类型WordCount案例实操上传至集群测试 官方WordCount源码 为了方便查阅#xff0c;我们将相关文件下载到本地查看: 注#xff1a;此处mapreduce-examples文件在/opt/module/hadoop-3.1.3/share/hadoop/mapreduce目… 文章目录 官方WordCount源码MapReduce编程规范常用数据序列化类型WordCount案例实操上传至集群测试 官方WordCount源码 为了方便查阅我们将相关文件下载到本地查看: 注此处mapreduce-examples文件在/opt/module/hadoop-3.1.3/share/hadoop/mapreduce目录下可以查找到 借助反编译工具查看源码: 可以看到MapReduce有大量的案例我们找到想了解的WordCount案例如下: 可以看到WordCount案例有驱动类、Map类、Reduce类。并且数据的类型是Hadoop自身封装的序列化类型(如Text类型对应于Java中的String类型,IntWritable类型对应于Java中的int类型) MapReduce编程规范 用户编写的程序分成三个部分Mapper、Reducer 和 Driver 1.Mapper-stage (1) 用户自定义的Mapper要继承自己的父类 (2) Mapper的输入数据是KV对的形式(KV类型任意通过泛型体现) (3) Mapper中的业务逻辑写在map()方法中 (4) Mapper的输出数据是KV对的形式(KV类型任意通过泛型体现) (5) map()方法(MapTask进程)对每一个K,V调用一次 2.Reducer-stage (1) 用户自定义的Reducer要继承自己的父类 (2) Reducer的输入数据类型对应Mapper的输出数据类型,也是KV (3) Reducer中的业务逻辑写在reduce()方法中 (4) ReducTask进程对每一组相同K的K,V组只调用一次reduce()方法 3.Driver-stage 相当于YARN集群的客户端用于提交我们整个程序到YARN集群提交的是封装了MapReduce程序相关运行参数的job对象 常用数据序列化类型 可以看到除了String对应于Text类型外其余Java数据类型的对应Hadoop类型均是在原来类型后添加Writable WordCount案例实操 在给定文本文件中统计输出每一个单词出现的总次数 (1)输入数据 期望输出 2)需求分析 按照MapReduce编程规范分别编写Mapper、Reducer、Driver 其中每一阶段的业务逻辑如下 明确了每个阶段需要做的事情接下来便可以准备搭环境和编写各阶段业务逻辑代码了! 3)环境准备 (1)创建新maven工程,命名为MapReduceDemo (2)在pom.xml文件中添加如下依赖 dependenciesdependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion3.1.3/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.30/version/dependency /dependencies 在项目的src/main/resources目录下,新建一个文件,命名为log4j.properties并在其中填入 log4j.rootLoggerINFO, stdout log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%d %p [%c] - %m%n log4j.appender.logfileorg.apache.log4j.FileAppender log4j.appender.logfile.Filetarget/spring.log log4j.appender.logfile.layoutorg.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern%d %p [%c] - %m%n(3) 创建包名:com.root.mapreduce.wordcount (1) 编写Mapper类 package com.root.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import org.junit.Test;import java.io.IOException;/*** KEYIN,map时输入的key的类型 LongWritable* VALUEIN,map时输入value类型:Test* KEYOUT,map时输出的Key类型Test* VALUEOUT,map时输出的value类型IntWritable*/ public class WordCountMapper extends MapperLongWritable,Text,Text, IntWritable {private Text outKnew Text();private IntWritable outVnew IntWritable(1);Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {//思考如果new Text的位置在这里性能还是会低因为map方法会被调用n次(这取决于源文件有多少行),每次都要new一个新的会浪费空间//1.获取一行String s value.toString();//2.切割String[] s1 s.split( );//3.循环写出for (String s2 : s1) {//思考如果这里new了一个Text那么性能会下降因为如果读取的一行有很多数据那么每次for循环都要new一个Test性能极度下降//封装outKoutK.set(s2);//写出context.write(outK,outV);}} } 注这里我们把一个Text类型的变量outK和一个IntWritable类型的变量outV定义为Mapper类的成员变量提升一部分性能。(避免每次循环都new一个新对象) (2) 编写Reducer类 package com.root.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;/*** KEYIN,reduce时输入的key的类型 Text* VALUEIN,reduce时输入value类型: IntWritable* KEYOUT,reduce时输出的Key类型Test* VALUEOUT,reduce时输出的value类型IntWritable*/ public class WordCountReducer extends ReducerText, IntWritable,Text,IntWritable {private IntWritable outVnew IntWritable();Overrideprotected void reduce(Text key, IterableIntWritable values, ReducerText, IntWritable, Text, IntWritable.Context context) throws IOException, InterruptedException {int sum0;//atguigu,(1,1)//累加for (IntWritable value : values) {sumvalue.get();}outV.set(sum);//写出context.write(key,outV);} } 注这里同样我们把一个IntWritable类型的变量outV定义为Reducer类的成员变量提升一部分性能。(避免每次循环都new一个新对象) (3) 编写 Driver 驱动类 package com.root.mapreduce.wordcount;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.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.yarn.webapp.hamlet2.Hamlet;import java.io.IOException;public class WordCountDriver {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {//1.获取jobConfiguration conf new Configuration();Job ins Job.getInstance(conf);//2.设置jar包路径ins.setJarByClass(WordCountDriver.class);//3.关联mapper和reducerins.setMapperClass(WordCountMapper.class);ins.setReducerClass(WordCountReducer.class);//4.设置map输出的kv类型ins.setMapOutputKeyClass(Text.class);ins.setMapOutputValueClass(IntWritable.class);//5.设置最终输出的kv类型ins.setOutputKeyClass(Text.class);ins.setOutputValueClass(IntWritable.class);//6.设置输入路径和输出路径FileInputFormat.setInputPaths(ins, new Path(D:\\java_learning\\input));FileOutputFormat.setOutputPath(ins, new Path(D:\\java_learning\\output\\output1));//7.提交jobboolean result ins.waitForCompletion(true);System.exit(result ? 0 : 1);} } 运行main主函数查看目标路径下的文件详情 Editplus打开part-r-00000文件查看输出结果: 上传至集群测试 之前的步骤中我们相当于是在本地Windows环境下运行得到的结果实际生产中我们常常需要在集群中运行并测试接下来我们便来看一下如何在集群上测试。 1用 maven 打 jar 包需要添加的打包插件依赖 buildpluginspluginartifactIdmaven-compiler-plugin/artifactIdversion3.6.1/versionconfigurationsource1.8/sourcetarget1.8/target/configuration/pluginpluginartifactIdmaven-assembly-plugin/artifactIdconfigurationdescriptorRefsdescriptorRefjar-with-dependencies/descriptorRef/descriptorRefs/configurationexecutionsexecutionidmake-assembly/idphasepackage/phasegoalsgoalsingle/goal/goals/execution/executions/plugin/plugins/build 由于我们在集群上测试时想要动态获取输入和输出的路径因此我们需要把Driver程序中的如下部分做小部分修改其中args[0]是我们之后XShell控制台输入的第一个路径参数,代表了输入路径;args[1]是XShell控制台输入的第二个路径参数,代表了输出路径: 之后便可以进行打包操作。 2将程序打成 jar 包 3修改不带依赖的 jar 包名称为 wc.jar并拷贝该 jar 包到 Hadoop 集群的/opt/module/hadoop-3.1.3 路径。 注这里可以直接从Windows环境拖动想上传的文件到XShell上之后查看目录可以看到wc.jar已被上传 (4) 启动 Hadoop 集群 myhadoop.sh start(5) 查看集群节点状态 jpsall(5)执行WordCount程序 hadoop jar wc.jar com.root.mapreduce.wordcount.WordCountDriver /haha /output注意这里我们输入路径是集群上的/haha路径下的文件,输出路径为/output (输出路径在程序执行前不允许有重名路径) 执行后查看/output下的文件是否存在及内容 可以看到文件内容是hello.txt经过统计之后的与hello.txt相对应:
http://www.hkea.cn/news/14404881/

相关文章:

  • 新网网站负责人核验现场拍摄照片电子件网站建设的论文
  • 网站接入支付宝在线交易怎么做广告公司好听的名字
  • 商城网站有哪些怎么设置网站默认首页
  • 网站建设可行性方案模板在线定制手机壳
  • 做网站费用入什么科目asp网站 seo
  • 重庆建工建筑工程信息网太原网站搜索优化
  • html5模板网站北京地产网站建设
  • 江苏省建设厅网站挂证存疑名单php做商品网站
  • 电子网站建设公司怎么安装php网站
  • 行业网站解决方案wordpress文章怎么增加字段
  • 深圳单位网站建设服务公司asp成品网站
  • 网站关键词优化方案用什么做网站方便
  • 怎么做跨境电商网站长沙精品网站建设公司
  • 做兼职设计去哪个网站如何制作微信小程序
  • wordpress网站制作app网站建设做网站可以吗
  • mvc网站建设的实验报告能直接用网站做海报吗
  • ppt模板网站源码苏州网站开发公司排名
  • 网站的 联系我们怎么做wordpress花园主题
  • 网站修改图片链接连云港吧
  • 郑州建站模板厂家互站网源码网站
  • 上海网站设计大连网站规划建设实训报告
  • 做的比较唯美的网站ueditor wordpress 插件
  • 设计网站printerest商城手机网站开发
  • 学校营销型网站网站有什么到期
  • 阿里巴巴做网站的德国和俄罗斯和做视频网站
  • 海尔电子商务网站建设预算旅游电子商务项目计划书
  • 做一个什么网站好seo文章优化方法
  • wordpress快站怎么样百度集团官网
  • easyui做门户网站服装设计好找工作吗
  • win7 iis架设网站教务管理系统哪个好