scala之传名参数和传值参数
简介传值参数(by-value parameter) 在函数调用之前表达式会被求值,例如Int,Long等数值参数类型;传名参数(by-name parameter) 在函数调用前表达式不会被求值,而是作为一个匿名函数传递。在介绍两者区别之前,先说一下 => 的用法。
=> 用法=>
...
MapReduce的工作机制(四)
MapReduce之部分源码分析主要对部分重要函数源码进行分析。
OutputCommittersMapReduce使用一个提交协议确保作业和任务都完全成功或者失败。这个行为通过OutputCommitters实现。OutputCommitters的源码如下:12345678910111213141
...
MapReduce的工作机制(三)
MapReduce之shuffle和排序MapReduce确保每个reducer的输入都是按键排序的。系统执行排序、将map输出作为输入传给reducer的过程称为shuffle。
map端map函数开始产生输出时,利用缓冲的方式写到内存并出于效率的考虑进行预排序。
每个map任务都有一个环形内
...
MapReduce的工作机制(二)
MapReduce之数据流MapReduce作业是客户端需要执行的衣蛾工作单元,它包括输入数据、MapReduce程序和配置信息。Hadoop将作业分成若干个任务来执行,包括map任务和reduce任务。这些任务运行在集群的节点上,并通过YARN进行调度。
分片Hadoop将MapReduce的输入
...
MapReduce的工作机制(一)
MapReduce作业简介MapReduce作业通过Job对象的submit()方法来调用。整个过程大概可以描述为:
客户端,提交MapReduce作业;
YARN资源管理器,负责协调集群上计算机资源的分配;
YARN节点管理器,负责启动和监视集群中机器的计算容器(container);
MapR
...
YARN中的资源调度
YARN中有三种调度器可用:FIFO调度器(FIFO Scheduler),容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)。
FIFO调度器(FIFO Scheduler)FIFO调度器将应用放置在一个队列中,然后按照提交的顺序(先进先出)运行应用。首
...
YARN架构原理详解
YARN基本组件YARN的基本理念是将资源管理和任务调度/监控分成两个独立的服务:全局的资源管理器(ResoureManager)和单独任务的ApplicationMaster。 一个应用既是单独的一个任务,也是一个DAG的任务。YARN总体上仍然是master/slave结构,在整个资源管理框架中
...
scala之模式匹配
简介模式可以当做对某个类型,其内部数据在结构上抽象出来的表达式。scala中模式匹配使用match关键字。match可以当做是java风格的switch的广义化。但是有三个区别:
scala中的match是一个表达式,可以匹配各种情况;
scala的可选分支不会贯穿到下一个case;
如果一个模式
...