精华内容
下载资源
问答
  • 对概念进行限制和概括
    千次阅读
    2020-08-19 19:51:08

    MapReduce流程简要概括

    1.分布式计算

    分布式计算

    1. 很重要的思想就是,一个问题拆分为多个步骤和多份数据,然后很多台计算机一起处理,最后对这些数据处理结果汇总聚合就是最终结果。
    2. 我们的程序就是数据加逻辑/算法(代码),而要让多台电脑能够一起参与到问题解决中来,首先需要把数据和代码进行分割,这样让每台计算机都能参与计算与处理。
    3. 在这个过程中,如何保证各个计算机分到的数据和任务都是相对均衡跟适合的就很考验程序机制了。例如集群中有高配电脑和低配电脑,如何协调,让高配电脑和低配电脑都能分配到适合自己硬件配置的处理任
      务。例如怎样给电脑的资源状态打分,这样可以判断出这台电脑是处于空闲还是高负载状态?例如怎样协调节点跟节点之间的通信,如何对处理任务和结果做汇总,如何对集群资源做汇总?
    4. 分布式计算中几个概念:
    • 资源池
    • 任务队列
    • rpc调用
    • 负载均衡
    • 心跳机制
    • 数据分块
    • 任务切片

    2.MapReduce是什么?

    1. mapreduce是一种分布式处理数据的思想
    2. 分布式计算有很多种实现思路,mapreduce就是其中一种。
    3. 分布式计算通用部分,数据预处理。包括但不限于数据清洗、数据切块划分等操作。
    4. mapreduce,主要分为map阶段、reduce阶段。
    5. map阶段可以简单看做是数据转换阶段,就是把原始数据转换为中间数据。
    6. map到reduce中间,有一个数据shuffle阶段,可以简单理解为中间数据的切块与划分。
    7. reduce阶段可以看做是数据聚合阶段,就是把map阶段转换的数据做聚合处理

    3.MapReduce步骤简单介绍

    主要以下几个步骤:

    1. 数据切分

    1. 因为数据切分合适,能够i±后续的任务处理更好利用集群的能力。例如如果有很多很多小文件例如小于16MB,在处理之前,最好先做一下聚合。例如数据中有很多干扰数据,先清洗一下会降低中间处理出错的概率。
    2. 当使用分布式集群处理数据时,一般集群中节点既存储数据,也参与数据处理和计算。一般情况下,执行数据处理和计算的节点的数据来源最好就是自己本地磁盘上存储的文件(分布式存储,一般是一块一块的数据)。因为这样依赖,程序以及程序需要处理的数据都在一台电脑上,数据不需要通过网络通信来访问和获取,可以提高处理速度。

    2. MAP任务切分

    1. 任务切分,当程序要处理的数据已经切分好之后,一般情况下,对应的处理任务也是放到同样节点上进行运算地。mapreduce主要是2大步骤,map和reduce,任务也是map task和reduce task。
    2. 如果是Hadoop地mapreduce,默认情况下,一个文件对应地文件块数就创建一个maptask(默认文件块是128MB,也就是低于128MB文件,则只会创建一个maptask。如果超过128MB,如256MB,则有分为2块存储,这个文件处理地maptask就会创建2个。注意本地模式下,文件块数会降低到32或者64MB一块)
    3. 特殊情况下,例如考虑负载均衡,如果一台电脑的CPU和内存已经在高速运载,这时候集群中有其他电脑还空闲,这时候可以考虑把数据传输到空闲电脑上进行计算和处理分析。
    4. Hadoop地map task,这里文件读取默认是一行一行地读取;在对应地map方法中,添加代码进行每一行数据地转化处理。
    5. 一般地问题,做1次map reduce转化和聚合处理就能解决,但实际中,可能需要多次,甚至循环迭代方式来得到数据。如果是循环迭代方式,这就不是mapreduce所擅长的,需要借助于其他分布式数据计算引擎如spark和flink。
    6. 做了map数据转换之后,注意这里如果是分布式进行的,这些转换得出的数据其实就在各个节点服务器的磁盘上。(hadoop的性能和时效性无法达到实时计算原因之一就是由于中间文件落地磁盘IO这个机制,好处就是数据会比较安全稳定,因为中间数据都会保存到磁盘中。并且内存不可以无限加,但磁盘相对来说是可以无限加的,这样mapreduce就可以处理数据量非常非常庞大而时间要求不那么高的运算)

    3. 原始数据转换为中间数据

    1. 当map阶段的数据转换之后,得到了转换之后的中间数据。这时候是需要对这些转换后数据做处理的。
    2. 分区操作,就是把map阶段转换后的key, value数据按照key进行分区。(实际操作时,为了达到业务目标,key的设计很重要,设计的好,可以有效降低后续的代码复杂度)
    3. 中间数据分区,会把待合要求的key以及对应value聚合到一起。这样就会得到按照key进行分类之后的数据。例如key对应a, b, c, d, e, f,按照某种规则归为一个区,b, c归为一个区,d归为一个区。
    4. 排序,分区之后,会对分区后的数据,进行排序操作,可以简单理解为把key相同的数据按照一定规则排序,这样分区归类后的数据,再进一步划分。例如所有key为a的数据,让它们连续排列,并且
      按照字母升序排列。
    5. 数据分区和排序后,就得到几个不同的文件
    6. 以上就是shuffle操作,其实就是分布式计算中常见操作,洗牌再发牌,就是数据整理和派发。
    7. shuffle中主要考虑到负载均衡和数据倾斜,不过很严重的数据倾斜其实是需要程序员调整实现思路。

    常见的数据倾斜解决思路

    1. 不做分区,所有数据都在一个分区,这样不会有因为对key进行分类计算时导致不同key分到不同文件后数量不一致问题(key.hashcode() % numberOfReduceTasks)
    2. 不做reduce操作,就只有map任务,因为数据倾斜来源于针对reduce所做的数据划分,没有reduce任务,也就不存在数据倾斜
    3. 土豪做法,增加并行度(需要加机器或者加内存,数据倾斜主要是由于中间数据划分不均导致某些机器处理数据过大,这时候可以直接加机器,这样reduce并行度可以往上提升也可以直接加内存,这样增加节点处理数据的上限能力)
    4. 修改shuffle分区算法,因为这个分区算法是针对key进行处理和计算,可以通过修改和优化分区算法来降低数据倾斜的影响。
    5. 修改或者打散key,例如常见的给所有的key增加一个随机数前缀或者后缀,这样就算之前的key都是”a“,加了随机数前缀或者后缀之后,再进行key.hashcode() % numberOfReduceTasks 也会相对均匀散布到不同的文件区域中去。

    5. reduce

    1. 当中间数据已经输出之后,按照分布式思想,再让这些中间数据文件由不同的计算机节点处理,最后做一次聚合。
    2. 一般性问题,做一次map和reduce操作,也就是一次转换;一次聚合就可以解决问题。实际中可能需要多次聚合跟转换。
    3. reduce阶段,会有一个reduce task概念。也就是数据聚合操作其实也是让更多节点服务器介入。只不过需要处理的中间数据就是map阶段得出的结果经过分区和排序后的数据。
    4. hadoop的reduce中,设置几个reduce task就会有几个输出文件。如果希望得到一份汇总后文件,可以把reduce task数量设置为1, 也可以设置为多个,但最后手动或者写程序对reduce的输出结果再做一次
      聚合操作。
    5. 一般情况下,mapreduce迭代次数在1–2次即可,如果超过2次,就需要考虑换一种实现思路或者方式。因为mapreduce并不擅长迭代式的数据处理,spark,flink很擅长这方面的操作。

    备注:

    1. mapreduce所有操作核心思想都围绕着如何方便地对这些步驟做拆解,方便分发到不同计算机上做分布式运算来处理的.
    2. 考虑到实际情况;结合分布式运算的限制。有一些场景例如数据源本身不适合做切割时,分布式运算就会受到很大限制。
    3. mapreduce的map和reduce?介段,可以看为数据转换,数据聚合的操作。这也就意味着,需要把实际遇到的问题先从解决思路上也转换为这种思路,否则就会面临无法落地为mapreduce实现的问题。
    4. mapreduce,都是读取文件,注意默认是文本文{牛,如果是视频、ppt’、word等非文本文{牛,需要单独考虑对应格式如何处理,这个时候使用mapreduce就不是首选方式了。后续大家有兴趣可以看一下,图计算,机器学习等需要反复迭代操作数据,使用hadoop的mapreduce也会有较大问题。但spark的mapreduce则在实现上做了很大改良。
    更多相关内容
  • 概念的定义 概念的定义:用精炼的语句将概念的内涵...即先概括(找属概念)后限制(找种差)。 实质定义又可以分为: 性质定义:揭示概念所反映的对象的性质的定义。 发生定义:揭示概念所反映的对象的产生或...

    概念的定义

    概念的定义:用精炼的语句将概念的内涵提示出来 , 即揭示概念所反映对象的特有属性或本质属性。

    定义可以分为实质定义和词语定义。

    实质定义揭示概念所反映对象的固有属性或本质属性。其基本方法是:

    被定义概念=属概念 + 种差;即先概括(找属概念)后限制(找种差)。

    实质定义又可以分为:

    性质定义:揭示概念所反映的对象的性质的定义。

    发生定义:揭示概念所反映的对象的产生或形成过程。

    功用定义:揭示概念所反映的对象的功能或作用的定义。

    关系定义:揭示概念所反映的对象与其他对象的关系的定义。

     

    语词定义揭示(说明或规定)语词的意义,只是类似于定义。包括:

    说明的语词定义:对已经确定的意义加以说明。如: 耄耋之年 表示八九十岁年纪。

    规定的语词定义:对尚不确定的意义进行规定。如: 四个现代化 一国两制

     

    定义的规则:

    定义项与被定义项的外延应是全同的。违反这条规则会导致 定义过宽 定义过窄

    定义项中不能直接或间接地包括被定义项。否则就会犯 同语反复 循环定义 的逻辑错误。

    定义项中不得包括含混的语词,不得用比喻。违反这条规则会犯 定义含混 以比喻代定义 的错误。

    定义一般不能否定。违反这条规则会犯 否定定义 的错误。

    概念的划分

    划分:指以对象一定属性作标准,将一个属概念的外延分成若干种概念以明确其外延的逻辑方法。划分是由母项、子项和根据三个部分构成。

           “ 划分标准 是指划分所依据的对象的某个或某些属性

    划分与分解的区别:划分是把一个属概念分为若干个种概念,分解是把一个具体的事物肢解成许多构成部分。

     

           根据划分的层次可以分为一次划分(一层)和连续划分(多层)。

           按划分的子项的数目不同可以分为二分法划分和多分法划分。

           按照依据的属性是否为对象的本质属性可以分为科学划分和一般划分。

    划分应当遵守下列规则:

    划分必须是相应相称的。违反这条规则所犯的逻辑错误,或是 划分不全 ,或是 多出子项

    划分出的子项必须互相排斥,否则会犯 子项相容 的逻辑错误。

    每次划分必须按同一标准进行。违反这条规则会犯 标准不一 的逻辑错误。

    划分应当按层次逐级进行。违反这条规则会犯 层次不清 越级划分 的逻辑错误。

    概念的限制与概括

    概念的内涵和外延具有反变关系:外延愈大则内涵愈少;外延愈少则内涵俞多。

           概念的限制是指通过增加概念内涵而缩小其外延。限制是由属概念向其种概念的过渡。单独概念是限制的极限。

    概念的概括是指通过减少概念的内涵扩大其外延。概括是由种概念向属概念过渡。哲学范畴是概括的极限

           工人 可概括成 ,可以限制为 纺织工人

    展开全文
  • 数据结构~07.栈队列的基本概念

    万次阅读 热门讨论 2020-07-28 08:26:32
    队列的基本概念 本文是上一篇文章的后续,详情点击该链接~ 栈的定义:        栈是一种只能在一端进行插入或删除的线性表。其中,允许插入或删除的一端为栈顶(TOP)。栈顶由一个...

    数据结构~07.栈和队列的基本概念

    本文是上一篇文章的后续,详情点击该链接~

    栈的定义:

           栈是一种只能在一端进行插入或删除的线性表。其中,允许插入或删除的一端为栈顶(TOP)。栈顶由一个称为栈顶指针的位置指示器来指示。它是动态变化的。表的另一端为栈底,栈底固定不变。栈的插入和删除操作一般称为入栈和出栈。由栈的定义可以看出,栈的主要特点就是先进后出。

    栈的存储结构:

           栈可以用顺序表和链表来存储。也称顺序栈和链栈。在栈的定义中已经说明,栈就好像是一种稍加限制之后的线性表。

    #define MAXSIZE 100
    //顺序栈的定义
    typedef struct {
    	int data[MAXSIZE];		//存放栈中元素,MAXSIZE是已经定义的常量
    	int top;				//栈顶指针
    }SqStack;					//顺序栈结点定义
    
    //链栈结点定义
    typedef struct LNode {
    	int data;					//数据域
    	struct LNode *next;			//指针域
    }LNode;							//链栈结点的定义
    
    链栈

    在这里插入图片描述

    队列的定义

           队列简称队,它也是一种操作受限的线性表。其限制为仅允许在表的一端插入,在表的另一端删除。可进行插入的一端为队尾,可进行删除的一端为队头。向队列插入新元素称为进队,从队列中删除元素称为出队。队列的特点概括起来就是:先进先出。

    队列的存储结构

           队列可以用顺序表和链表来存储队列。称为顺序队和链队两种。

    #define MAXSIZE 100
    //顺序队的定义
    typedef struct {
    	int data[MAXSIZE];
    	int front;				//队首指针
    	int rear;				//队尾指针
    }SqQueue;					//顺序队结点类型定义
    
    //=====================================================
    
    //链队定义
    //队结点类型
    typedef struct QNode {
    	int data;				//数据域
    	struct QNode* next;		//指针域
    }QNode;						//队结点类型定义
    //链队类型定义
    typedef struct {
    	QNode* front;			//队头指针
    	QNode* rear;			//队尾指针
    }LiQueue;					//链队类型定义
    
    链队

    在这里插入图片描述

    展开全文
  • 队列的基本概念

    千次阅读 2020-07-26 16:41:29
    队列的基本概念 一、 栈的基本概念 1.栈的定义 栈是一种只能在一端进行插入或删除操作的线性表。其中允许进行插入或删除操作的一端称为栈顶(Top)。栈项由一个称为栈顶指针的位置指示器(其实就是一个变量,对于...

    栈和队列的基本概念

    一、 栈的基本概念

    1.栈的定义
    栈是一种只能在一端进行插入或删除操作的线性表。其中允许进行插入或删除操作的一端称为栈顶(Top)。栈项由一个称为栈顶指针的位置指示器(其实就是一个变量,对于顺序栈,就是记录栈项元素所在数组位置标号的一个整型变量:对于链式栈,就是记录栈顶元素所在结点地址的指针)来指示,它是
    动态变化的。表的另一端称为栈底,栈底是固定不变的。栈的插入和删除操作一般 称为入栈和出栈。
    2.栈的特点
    由栈的定义可以看出,栈的主要特点就是先进后出(FILO)。栈中的元素就好比开进一个死胡同的车队,最先开进去的汽车只能等后进来的汽车都出去了,才能出来。
    3.栈的存储结构
    可用顺序表和链表来存储栈,栈可以依照存储结构分为两种:顺序栈和链式栈。在找的定义中已经说明,栈是一种在操作上稍加限制的线性表,即栈本质上是线性表,而线性表有两种主要的存储结构——顺序表和链表,因此栈也同样有对应的两种存储结构。
    4.栈的数学性质
    当n个元素以某种顺序进栈,并且可在任意时刻出栈(在满足先进后出的前提下)时,所获得的元素排列的数目N恰好满足函数Catalan()的计算,即
    在这里插入图片描述

    二、队列的基本概念

    1.队列的定义
    队列简称队,它也是一种操作受限的线性表,其限制为仅允许在表的一端进行插入,在表的另一端进行删除。可进行插入的一端称为队尾(Rear), 可进行删除的一端称为队头(Front)。向队列中插入新的元素称为进队,新元素进队后就成为新的队尾元素:从队列中删除元素称为出队,元素出队后,其后继元素就成为新的队头元素。
    2.队列的特点
    队列的特点概括起来就是先进先出(FIFO)。 打个比方,队列就好像开进隧道的一列火车, 各节车厢就是队中的元素,最先开进隧道的车厢总是最先驶出隧道。
    3.队列的存储结构
    可用顺序表和链表来存储队列,队列按存储结构可分为顺序队和链队两种。

    展开全文
  • 人脸识别的发展基础概念

    千次阅读 2019-05-15 22:19:37
    用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测跟踪人脸,进而检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。2017年9月13号,IPhoneX发布的时候,基于3D结构光的...
  • 我们通过显示关于不可重构曲线段的信息来纯化纠缠概念的略微概括进行编码,从而克服了这一难题,该技术的全息对偶已经在最近进行了讨论。 我们介绍了“微分纯化”的概念,并证明了它与微分熵相结合,可以在任何三...
  • 思维事物的间接反映,有着逻辑思维、形象思维、直觉思维、顿悟等等思维形式的存在。...概括是思维活动的速度、灵活迁移程度、广度深度、创造程序等智力品质的基础。前苏联心理学家鲁宾斯坦认为:迁移就是概括。...
  • 掐指一算,云计算已经有了十年的历史,发展到今天几乎可以算是近十年最伟大的技术进步之一。「云计算」这个术语,也早已从一个新鲜词汇,成为了妇孺皆知的流行语。任何事物的诞生发展一定有其前...
  • Europe 2015与Unite Boston 2015两届大会上,也有专题进行深入的讲解。然而,这方面的内容依旧是用户讨论的热门话题,因此我们意识到应当分享更多。希望本文能回答一些被频繁咨询的问题。 U
  • 数据库游标的概念和作用

    万次阅读 多人点赞 2019-10-22 17:35:56
    概括来讲,SQL的游标是一种临时的数据库对象,即可以用来存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针。游标提供了在逐行的基础上操作表中数据的方法。 游标的一个常见用途就是保存查询...
  • 这种长度尺度概括了超越弱耦合的平均自由程的概念,并允许有限大小的区域独立地热化。 使用本征态热化假设,我们发现,如果热化长度过短或剪切粘度过大,则有限大小“火球”中的热波动会产生违反平均零能条件的状态...
  • C/C++面试笔试详细总结—基本概念及其它问答题

    千次阅读 多人点赞 2020-09-25 18:35:20
    本文覆盖了C/C++工程师面试的95%以上的常考基础概念及技术细节问答题(不含STLsocket以及嵌入式的深入问答,仅为中等层面问答),整理总结不易,不点赞收藏一波再走嘛? 文章目录干货:C/C++笔试面试详细总结—...
  • 设计模式是软件大师们根据多年来的软件开发经验,软件开发领域包括合理复用、提高健壮性、减少BUG等各方面作的抽象总结,不同的设计模式方法适合于不同的应用场景,是汇结了他们最宝贵的经验总结。最早的开发模式...
  • CMOS工作原理和概念

    万次阅读 2019-05-05 16:55:12
    关于大像素高像素(高像素密度)的争论从D70350D时代就开始了,到了D7005D2的时代不仅没有争论出正确的结论,反而得出了一个似是而非的结果:高像素好。包括一些号称专业的网站在D3s发布后认为D3s没有大的改进...
  • 1.为什么浏览器会限制 ajax 并行请求数量? 答:浏览器发出网络请求需要新开线程,而且可以发出请求的端口数量有限,从开销角度考虑不可能无限发出并发请求;此外如果浏览器不作限制,大量的请求同时发至服务器,也...
  • 经济学中的100个基本概念

    千次阅读 2021-02-27 10:31:13
    供给需求6. 消费者理论7. 厂商理论8. 垄断竞争9. 垄断竞争寡头10. 国内生产总值:GDP11. 总需求:经济繁荣的根本12. 财政、税收与财政政策13. 货币银行14. 中央银行与货币政策15. 失业16. 通货膨胀17. 经济...
  • 数据挖掘概念与技术_第三版_课后习题

    万次阅读 多人点赞 2020-04-23 14:26:13
    该文为数据挖掘概念与技术第三版课后习题的答案,部分参考了第二版的英文答案,由于个人水平有限,如若存在纰漏,请在评论区批评指正。另外,由于本次编辑格式较乱,可在资源下载区下载PDF版本以便参考。 第一章 ...
  • 其实每一个产品经理的内心深处,都有着一颗文艺青年的心灵,也正是拥有了这样一颗感受丰富、体验细腻的产品之心,才使得我们能够产品设计的细节有着更为透彻深入的理解。
  • 前言 区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说... 基本概念 区块链的概念最近很火,它
  • 原型图高保真中保真的区别 概念证明/第4部分 (PROOF OF CONCEPT / PART 4) This is the final article of a four-part series. Please read Part 1, Part 2, and Part 3. 这是一个分为四个部分的系列文章的最后一...
  • 数据结构基础概念知识点_保研/考研/面试复习

    千次阅读 多人点赞 2019-09-17 20:21:22
    为准备推免保研面试,数据结构基础概念知识点作了如下总结。 参考书籍:《数据结构(C语言版)》 严蔚敏等 清华大学出版社 参考网页:https://blog.csdn.net/qq_31196849/article/details/78529724 以上引用侵删。 ...
  • 为了有效地结合两种架构的优势,我们提出了 CoAtNets(发音为“coat”nets),这是一个基于两个关键见解构建的混合模型系列: (1)depthwise Convolutionself-Attention可以通过简单的相对注意力自然地统一起来;...
  • 这个小小的自学Python课程将帮助您保持结构化组织化,同时学习从入门到高级的Python概念。 小便笺 该课程计划在四个星期内完成(考虑建议的每日时间投入,您将在相应的一周内找到该投资)。 但是,如果某些程序员...
  • 土地资源、水资源等承载力研究的基本内容、评价方法进行较全面的概括和总结的基础上,到目前为止的资源承载力研究中存在的问题提出了几点思考:①应将生态系统作为一个整体.在整体中研究其子系统的承载力;②...
  • 得到新系统的高层逻辑模型之后,可能会发现前面问题定义的范畴过大,分析员还要用户一起再复查问题定义,问题进行重新定义修正。 导出评价供选择的解法 分析员应该从系统逻辑模型出发,研究问题的几个组成...
  • 如果你这个系列感兴趣的话,可以关注订阅哟 在前七章中,我们探讨了几个 Transformer 生态系统的架构训练、微调使用。在第 7 章“使用 GPT-3 引擎的超人变形金刚的崛起”中,我们发现 OpenAI 已经开始尝试零...
  • 核心的长期概念可以概括为反映玩家其分配的满意程度。 现在必须正式确定分配的限制,例如与信息有关的限制。 后者有时也更有利于分数表示。 随着概率结构的加入,不确定性回报成为随机变量,效用函数获得风险态度...
  • 这些天,抽空读了一下人工智能基础(高中版),觉得作为高中科普教材,还是非常不错的,五星好评推荐。 下面会针对每一章的内容,依据兴趣等...这是medium.com上发布的文章列表,habr.comjqr.com。图标是可点击...
  • Android编译优化:D8R8

    千次阅读 2021-04-19 21:04:52
    如果日常做Android开发的你不关注Google针对编译优化的话做的努力的话,会D8R8这两个名词会比较陌生。最近要升级工程的Gradle版本,正好涉及到开启D8R8的问题,笔者就简单整理解释下这两者的作用和概念。 一张...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,864
精华内容 14,345
热门标签
关键字:

对概念进行限制和概括