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

泾川县建设局网站html5的优点

泾川县建设局网站,html5的优点,wordpress 京东客,营销方案的几个要素Yarn架构体系 主从架构 也是采用 master#xff08;Resource Manager#xff09;- slave #xff08;Node Manager#xff09;架构#xff0c;Resource Manager 整个集群只有一个#xff0c;一个可靠的节点。 1、 每个节点上可以负责该节点上的资源管理以及任务调度Resource Manager- slave Node Manager架构Resource Manager 整个集群只有一个一个可靠的节点。 1、 每个节点上可以负责该节点上的资源管理以及任务调度Node Manager 会定时向Resource Manager汇报本节点上 的资源使用情况和任务运行状态 2、 Resource Manager会通过心跳应答的机制向Node Manager下达命令或者分发新的任务 3、 Yarn 将某一资源分配给该应用程序后应用程序会启动一个Application Master 4、 Application Master为应用程序负责向Resource Manager申请资源申请资源之后再和申请到的节点进行通信运行内部任务。 Resource Manager RM是一个全局的资源管理器负责整个系统的资源管理和分配。它主要由两个组件构成调度器Scheduler和应用程序管理器Applications ManagerASM。 Schedule 资源调度器是一个可插拔的组件用户可根据自己需要设计资新的源调度器YARN提供多个可直接使用的资源调度器。资源调度器将系统中的资源分配给正在运行的程序不负责监控或跟踪应用的执行状态不负责重启失败的任务。 Applications Manager 应用程序管理器负责管理整个系统中所有应用程序包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它等。 Node Manager NM是每个节点上的资源和任务管理器一方面它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态另一方面它接收并处理来自AM的Container启动/停止等各种请求。 ApplicationMaster 用户提交的每个应用程序均包含一个AM主要功能包括 1.与RM调度器协商以获取资源用Container表示 2.将得到的任务进一步分配给内部的任务 3.与NM通信以启动/停止任务 4.监控所有任务运行状态并在任务运行失败时重新为任务申请资源以重启任务。 注RM只负责监控AM在AM运行失败时候启动它RM并不负责AM内部任务的容错这由AM来完成。 Container Container是YARN中的资源抽象它封装了某个节点上的多维度资源如内存、CPU、磁盘、网络等当AM向RM申请资源时RM为AM返回的资源便是用Container表示。YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。yarn的container容器是yarn虚拟出来的一个东西,属于虚拟化的,它是由memoryvcore组成,是专门用来运行任务的 Yarn的安装 etc/hadoop/目录下 yarn-site.xml文件 cd /opt/apps/hadoop-3.1.1/etc/hadoop/vi yarn-site.xml!-- resource,manager主节点所在机器 -- propertynameyarn.resourcemanager.hostname/namevaluelinux01/value /property!-- 为mr程序提供shuffle服务 -- propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value /property!-- 一台NodeManager的总可用内存资源 -- propertynameyarn.nodemanager.resource.memory-mb/namevalue4096/value /property !-- 一台NodeManager的总可用逻辑cpu核数 -- propertynameyarn.nodemanager.resource.cpu-vcores/namevalue4/value /property!-- 是否检查容器的虚拟内存使用超标情况vmem为true 指的是默认检查虚拟内存,容器使用的虚拟内存不能超过我们设置的虚拟内存大小 -- propertynameyarn.nodemanager.vmem-check-enabled/namevaluefalse/value /property!-- 容器的虚拟内存使用上限与物理内存的比率 -- propertynameyarn.nodemanager.vmem-pmem-ratio/namevalue2.1/value /property将 yarn-site.xml 同步给其他Linux scp yarn-site.xml linux02:$PWD scp yarn-site.xml linux03:$PWD 配置一键启停 cd /opt/apps/hadoop-3.1.1/sbin vi start-yarn.sh vi stop-yarn.shYARN_RESOURCEMANAGER_USERroot HADOOP_SECURE_DN_USERyarn YARN_NODEMANAGER_USERrootstart-yarn.sh 一键启动 启动后可以访问 http://linux01:8088 查看页面解决linux连接部上 网卡出现问题 systemctl stop NetworkManager systemctl diable NetworkManager systemctl restart networkMR程序提交到Yarn上运行 使用idea提交程序 配置mapred-site.xml文件 添加到resources目录下 ?xml version1.0? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configurationpropertynameyarn.app.mapreduce.am.env/namevalueHADOOP_MAPRED_HOME/opt/apps/hadoop-3.1.1/value/propertypropertynamemapreduce.map.env/namevalueHADOOP_MAPRED_HOME/opt/apps/hadoop-3.1.1/value/propertypropertynamemapreduce.reduce.env/namevalueHADOOP_MAPRED_HOME/opt/apps/hadoop-3.1.1/value/property/configurationday05.com.doit.demo06; 修改提交任务的代码 maven打jar包的命令为 package public class Test02 {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {System.setProperty(HADOOP_USER_NAME, root);Configuration conf new Configuration();//操作HDFS数据conf.set(fs.defaultFS, hdfs://linux01:8020);//设置运行模式conf.set(mapreduce.framework.name, yarn);//设置ResourceManager位置conf.set(yarn.resourcemanager.hostname, linux01);// 设置MapReduce程序运行在windows上的跨平台参数conf.set(mapreduce.app-submission.cross-platform,true);Job job Job.getInstance(conf, WordCount);//设置jar包路径job.setJar(D:\\IdeaProjects\\hadoop\\target\\test_yarn.jar);job.setMapperClass(WordCountMapper.class);job.setReducerClass(WordCountReduce.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//设置路径为HDFS路径FileInputFormat.setInputPaths(job,new Path(/wc/input/word.txt));FileOutputFormat.setOutputPath(job,new Path(/wc/out4));job.waitForCompletion(true);} } 在linux上直接提交jar包 public class Test02 {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {Configuration conf new Configuration();//设置运行模式conf.set(mapreduce.framework.name, yarn);//设置ResourceManager位置conf.set(yarn.resourcemanager.hostname, linux01);// 设置MapReduce程序运行在windows上的跨平台参数conf.set(mapreduce.app-submission.cross-platform,true);Job job Job.getInstance(conf, WordCount);//设置jar包路径//job.setJar(D:\\IdeaProjects\\hadoop\\target\\test_yarn.jar);job.setJarByClass(Test02.class);job.setMapperClass(WordCountMapper.class);job.setReducerClass(WordCountReduce.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//设置路径为HDFS路径FileInputFormat.setInputPaths(job,new Path(/wc/input/word.txt));FileOutputFormat.setOutputPath(job,new Path(/wc/out5));job.waitForCompletion(true);} } 打成jar包后 linux上使用 需要查看 mapred-site.xml 如果没有配置 需要配置一下hadoop jar jar包名 运行的类 hadoop jar test_yarn.jar day03.com.doit.demo02.Test02 Map Join Map端join是指数据达到map处理函数之前进行合并的,效率要远远高于Reduce端join因为Reduce端join是把所有的数据都经过Shuffle非常消耗资源。 order.txt order011 u001 order012 u001 order033 u005 order034 u002 order055 u003 order066 u004 order077 u010user.txt u001,hangge,18,male,angelababy u002,huihui,58,female,ruhua u003,guanyu,16,male,chunge u004,laoduan,38,male,angelababy u005,nana,24,femal,huangbo u006,xingge,18,male,laoduan最终结果 u001,hangge,18,male,angelababy,order012 u001,hangge,18,male,angelababy,order011 u002,huihui,58,female,ruhua,order034 u003,guanyu,16,male,chunge,order055 u004,laoduan,38,male,angelababy,order066 u005,nana,24,femal,huangbo,order033 null,order077 一个用户可能会产生多个订单,可能user.txt中的用户非常少,但是订单数据又非常非常多,这时我们可以考虑使用Map端join.一个小文件,一个大文件时,可以使用Map端join,说的简单一些,就是不走reduce,通过Map直接得出结果. 原理:将小文件上传到分布式缓存,保证每个map都可以访问完整的小文件的数据,然后与大文件切分后的数据进行连接,得出最终结果. package hadoop06.com.doit.demo;import hadoop03.com.doit.demo02.WordCountMapper; import hadoop03.com.doit.demo02.WordCountReducer; import hadoop05.com.doit.demo05.Test; import org.apache.commons.lang.ObjectUtils; 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.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map;public class MapJoinDemo {public static class JoinMapper extends MapperLongWritable,Text,Text, NullWritable{//定义集合用来存储user.txt的数据 键是uid 值是这一行记录private MapString,String userMap new HashMap();private Text k2 new Text();Overrideprotected void setup(MapperLongWritable, Text, Text, NullWritable.Context context) throws IOException, InterruptedException {//读取本地user.txt文件 由于user.txt添加到了分布式缓存中,会将这个文件 缓存到执行maptask的计算机上//由于这个文件和class文件放在一起 可以直接读取BufferedReader br new BufferedReader(new FileReader(user.txt));String line null;while((line br.readLine())!null){//System.out.println(line);String uid line.split(,)[0];//将uid 和 user的一行记录放入到map中userMap.put(uid,line);}}Overrideprotected void map(LongWritable key, Text value, MapperLongWritable, Text, Text, NullWritable.Context context) throws IOException, InterruptedException {//得到order的一条记录String line value.toString();//获取order的 uidString uid line.split(\\s)[1];// u001//获取map中 当前uid的 用户信息String userInfo userMap.get(uid);//拼接字符串写出k2.set(userInfo,line.split(\\s)[0]);context.write(k2, NullWritable.get());}}public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException, URISyntaxException {System.setProperty(HADOOP_USER_NAME, root);Configuration con new Configuration();//配置到yarn上执行con.set(mapreduce.framework.name, yarn);//配置操作HDFS数据con.set(fs.defaultFS, hdfs://linux01:8020);//配置resourceManager位置con.set(yarn.resourcemanager.hostname, linux01);//配置mr程序运行在windows上的跨平台参数con.set(mapreduce.app-submission.cross-platform,true);Job job Job.getInstance(con,wordcount);//分布式缓存user.txt文件job.addCacheFile(new URI(hdfs://linux01:8020/user.txt));//设置jar包的路径job.setJar(D:\\IdeaProjects\\test_hadoop\\target\\test_hadoop-1.0-SNAPSHOT.jar);//设置Mapperjob.setMapperClass(JoinMapper.class);//设置最后结果的输出类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(NullWritable.class);//设置读取HDFS上的文件 的路径//设置读取文件的位置 可以是文件 也可以是文件夹FileInputFormat.setInputPaths(job,new Path(/join/order.txt));//设置输出文件的位置 指定一个文件夹 文件夹不已存在 会报错FileOutputFormat.setOutputPath(job,new Path(/join/out));//提交任务 并等待任务结束job.waitForCompletion(true);}}public class Test02 {public static void main(String[] args) {int[] arr {3,4,2,8,5,1,7,3};quickSort(arr,0,arr.length-1);System.out.println(Arrays.toString(arr));}public static void quickSort(int[] arr, int startIndex, int endIndex) {if (startIndex endIndex) {return;}// 核心算法部分分别介绍 双边指针交换法int pivotIndex doublePointerSwap(arr, startIndex, endIndex);// 用分界值下标区分出左右区间进行递归调用quickSort(arr, startIndex, pivotIndex - 1);quickSort(arr, pivotIndex 1, endIndex);}private static int doublePointerSwap(int[] arr, int startIndex, int endIndex) {int pivot arr[startIndex];int leftPoint startIndex;int rightPoint endIndex;while (leftPoint rightPoint) {// 从右向左找出比pivot小的数据while (leftPoint rightPoint arr[rightPoint] pivot) {rightPoint--;}// 从左向右找出比pivot大的数据while (leftPoint rightPoint arr[leftPoint] pivot) {leftPoint;}// System.out.println(leftPoint rightPoint);// 没有过界则交换if (leftPoint rightPoint) {int temp arr[leftPoint];arr[leftPoint] arr[rightPoint];arr[rightPoint] temp;}// System.out.println(Arrays.toString(arr));}// 最终将分界值与当前指针数据交换arr[startIndex] arr[rightPoint];arr[rightPoint] pivot;// 返回分界值所在下标return rightPoint;}}归并排序 package com.doit.demo;import java.util.Arrays; import java.util.Random;public class Test03 {public static void main(String[] args) {int[] arr new int[100];//向数组中添加100的 0-1000的随机数for (int i 0; i arr.length; i) {arr[i] new Random().nextInt(1000);}//调用排序sort(arr,0,arr.length-1);System.out.println(Arrays.toString(arr));}public static void sort(int[] arr,int start,int end){//递归出口if(startend){return;}//计算中间索引 拆分数组int mid start(end- start)/2; // length 10 ; 09/2 4; 左0-4 右 5 - 9; // //左边有序数组sort(arr,start,mid);//右边有序数组sort(arr,mid1,end); ////合并merge(arr,start,mid,end);}public static void merge(int[] arr ,int start,int mid, int end){//定义一个辅助数组int[] assist new int[arr.length] ;int i start;int leftIndex start;int rightIndex mid1;//循环比较while(leftIndexmid rightIndexend){//如果左边数组的元素比右边数组的元素小 则将左边数组的元素放入到辅助数组中if(arr[leftIndex] arr[rightIndex]){assist[i] arr[leftIndex];i;leftIndex;}else{//如果左边数组的元素比右边的元素大 则将右边的元素放入到辅助数组中assist[i] arr[rightIndex];i;rightIndex;}}//如果左边的数组没走完 将剩下的放入到辅助数组中while(leftIndexmid){assist[i] arr[leftIndex];i;leftIndex;}//如果右边的数组没走完 将剩下的放入到辅助数组中while(rightIndexend){assist[i] arr[rightIndex];i;rightIndex;}//将辅助数组的值 为 原本的数组赋值for(int index start;indexend;index){arr[index] assist[index];}} }
http://www.hkea.cn/news/14360236/

相关文章:

  • 连云港网站建设多少钱贵州省建设局八大员报名网站
  • 网站分析工具有哪些都昌网站建设
  • 网站开发前端好还是后端好福建seo搜索引擎优化
  • 做网站的网站源码wordpress 音频
  • 原创网站源码化工企业网站建设
  • 网站建设与管理自考本手机建设网站自适应的好处
  • 网站-网站建设定制成都市建设局官网
  • 公司网站建设成都wordpress 多站点教程
  • 沈阳h5网站建设网络销售技巧
  • 小何自助建站wordpress4.2.19 漏洞
  • 太原公司网站开发织梦资源网模板
  • 鹏达建设集团有限公司网站WordPress加载语言包
  • 怎样做分类网站搜索技巧的网站
  • 360网站建设的目标是什么七台河新闻联播2022视频
  • 手机实用网站黑龙江建设网官网入口
  • 济南建网站送400电话企业管理培训课程班
  • 做网站和做微商城有什么区别微动网站建设
  • 安徽网站排名优化公司苏州自助建站平台
  • 拼车平台网站开发中国建设银行青浦支行网站
  • 设计电子商务网站电商网站的程序有哪些
  • 百度推广是给做网站吗wordpress数据库邮箱
  • 桂林旅游攻略必去景点网站建设公司十年乐云seo
  • 珠海房地产网站建设网站建设南阳
  • 二级网站怎样做在什么网站做推广最好
  • 设计师 必备的网站app软件开发就是网站开发吗
  • 百度搜索指数查询网站应该如何进行优化
  • vs2013做登录网站百度推广账户怎么开
  • 外贸网站商城建设广州省建设厅官方网站
  • 网站底部广告代码电话销售做网站的术语
  • 做兼职的网站校园网络工程设计方案