Hadoop Mapreduce的局限性:JobTracker单点瓶颈;TaskTracker端;作业延迟高;编程框架不够灵活。 Mapreduce2的设计需求:可靠性;可用性;扩展性;向后兼容;演化;可预测延迟;集群利用率;支持除Mapreduce编程框架外的其他框架;支持受限和短期的服务。   Mapreduce2的主要设计思路是将JobTracker承担的两大任务块——集群资源管理和作业管理进行分离,其中分离出来的集群资源管理由全局的资源管理器管理,分离出来的作业管理由针对每个作业的应用主体管理。然偶TaskTracker演化成节点管理器。这样全局的资源管理器和局部的节点管理器就组成了数据计算框架,其中资源管理器将成为整个集群中资源最终分配者。   根据功能不同将资源管理器分为两个组件:调度器和应用管理器。调度器负责资源的分配,而不负责监控各个应用的执行情况和任务失败,应用失败或硬件失败时的重启任务。应用管理器负责接收作业,协商获取第一个资源容器用于执行应用的任务主题并为重启失败的应用主题分配容 继续阅读 >>


张瑞 15/04/03 10:56:42
Kerberos:网络认证服务系统,给予私匙体制。 Kerberos协议主要用于计算机网络的身份鉴别,其特点是用户只需要输入一次身份验证信息就可以凭借此验证访问多个服务,即SSO。由于每个Client和Service之间建立了共享密匙,是得该协议具有相当的安全性。 client与KDC,KDC与service在协议工作前已经有了各自的共享密匙,并且由于协议中的消息无法穿透防火墙,这些条件就限制了kerberos协议往往用于一个组织的内部。 Kerberos协议分为两个部分: 1.client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT,并用协议开始前Client与KDC之间的密匙将TGT加密恢复给Client。此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。 2.Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别。 Client将之前获得TGT 继续阅读 >>


张瑞 15/04/03 10:51:23
服务器编程基本框架: 事件处理模式 一般来说,IO复用机制都需要一个事件分离器,它会将事件源分发给对应的处理者,即将那些读写事件源分发给各读写事件处理者。Reactor和Proactor就是两种最常用的事件处理模式。 Reactor Reactor模式是指主线程只负责监听文件描述符上是不是有事件发生,有的话就将该事件通知工作线程,除此之外,主线程不需要做其他任何工作,其他的数据读写、逻辑处理等都是在工作线程中完成的。比如说在Reactor模式下的读操作过程: - 在主线程上注册读就绪事件和相应的事件处理器- 事件分离器等待事件- 事件到来,激活分离器,分离器调用事件对应的工作线程。- 工作线程完成实际的读操作,处理读到的数据,注册新的事件,然后返还控制权。 Proactor Proactor模式与Reactor一样,都是对某个IO事件进行通知,不同的是,Proactor模式中主线程不止监听文件描述符上的事件是否发生,还要完成所有的读写操作,而工作线程要做的只是处理逻辑问题。也就是说,Proac 继续阅读 >>


宋润雨 15/03/31 18:08:57
好久没有写文章,好久没有总结自己的学习了。最近,会带了一系列干货,总结过去,勉励以后。废话不多说,先来一系列I/O复用浅析。 先思考一个问题:你觉得I/O复用有什么好处?有没有用过select、poll、epoll?epoll为什么比较好? 活跃你的思维,想一想,如果是你,你会怎么回答这几个问题? 那么,我想先说一下,什么是I/O多路复用机制? 所谓I/O多路复用机制就是说通过一种机制,可以监视多个文件描述符,一旦某个文件描述符就绪,能够通知程序进行相应的读写操作。(I/O复用虽然能同时监听多个文件描述符,但是它本身却是阻塞的。并且当一个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依次处理其中的每个文件描述符,这样就相当于服务端工作方式为串行的;所以必须采用多进程或多线程来实现并发。)那么,我选择其中的select、poll、epoll三组I/O复用系统调用进行解说。 首先,说说select select系统调用的用途:在一段指定时间内,监听用户感兴趣的文件描述符上的可读、可写、 继续阅读 >>


崔姣姣 15/03/29 09:52:10
Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of tourists' sunscreen, he wants to avoid swimming and instead reach her by jumping. Unfortunately Fiona's stone is out of his jump range. Therefore Freddy considers to use other stones as intermediate stops and reach her by a sequence of several small jum 继续阅读 >>


许博东 15/03/26 19:03:02
/ Description Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she wants to get back as quickly as possible. Farmer John's field has N (2 <= N <= 1000) landmarks in it, uniquely numbered 1..N. Landmark 1 is the barn; the apple tree grove in which Bessie stands all day is landmark N. Cows travel in the field using T ( 继续阅读 >>


许博东 15/03/26 18:47:43
任何一个大于1的自然数n都可以携程都可以写成若干个大于等于2小于等于n的质数之和,并不只有一种形式.例如9就有四种形式. 9 = 2 + 5 +2 = 2 + 3 +2 +2 = 3 + 3 +3= 2+ 7 方法一: 直接进行搜索(输入限制很大). 方法二: 构造下列母函数. G(x) = (1+x^2+x^4+x^6+.....x^(x/2)) (1+x^3+x^6+x^9+...x^(x/3))*......... 说明: 对于没一部分 x^m (1 = x^0) 第 i 部分则是选择第i个质数pirme[i]的个数 最后只需要求得x^n项的系数即可. 然而对于求多个质数则使用筛法来求. 对于一个素数i,其所有的倍数都不是素数, 使用该方法进需要将所有x<n/2 的所有质数的倍数排除,则剩下的 m < n m!=x为质数. 给出代码: #include <cstring> #include <cstdio> #include <vector> us 继续阅读 >>


张续 15/03/23 20:53:32
1.我们将一个有序数组(n个元素)从i(号位置)之前放到n位置之后形成的数组为有序循环数组。 2.数组 1 2 4 5 6 7 8    的有序循环数组有   1 2 4 5 6 7 8 (元数组是位置0处的有序循环数组).   2 4 5 6 7 8 1    4 5 6 7 8 1 2   5 6 7 8 1 2 4   6 7 8 1 2 4 5    7 8 1 2 4 5 6   8 1 2 4 5 6 7 3.我们要在有序循环数组中找到一个元素出现的位置(此处假设每个元素出现次数小于等于一)。 a.顺序差 O(n)  b.(二次)二分查找O(2logn) ~ O(logn)。 此处先说明一下二分查找. 若数组有序那么我们取首个位置为l,最后位置为r,中间位置为m=(l+r) /2,要找的元素为val  l<=r时 若A [ m] ==val则找到. 若A[m]>val 则在左边找l=m-1; 若A[m]<val则在右边找r=m+1; 重复过程直到找到. 有下列. 在0 2 继续阅读 >>


张续 15/03/22 16:56:21
1.对抗搜索 在对弈中经常会遇到可能性很多而有没有规律的情况,这时可以对所有后续情况进行分析,选择当前对自己最有利的一中情况. 如果两方A,B进行对弈,计算现在局面的分数(对A和B),如果两方处于对立,那么一定在一方分数高的同时另一方分数会低( 每方都希望局面对自己有利),因此此时进计算A的分数,B的分数可以由A的分数反应(A高B低,A低B高),如果两个人足够 聪明(知道N局以后可能的所有局面,此时用搜索来列举),每一步都会选择对自己有利的后续局面进行操作.若果此时从结果像 最开始推,那么决策这一定会选择更有利的上一步进行来进行决策,而当前的所处换将则是由对方的上一步决策导致的. 现在记A的分数(决策效果)为分数,A希望自己获得更高的分数记MAX方,B希望自己能获得更高的分数(A获得更低的分数) 记做MIN方. 若果现在已经计算出了最下面一层的分值,由A操作那么A会对B创造的局面采取最优的决策(导致倒数第二层),以此操作,到上面的n次操作O(P) P=A,B 操作,那么 他知道自己的决策会形成怎样的 继续阅读 >>


张续 15/03/07 21:23:11
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct t_type{ int hight; int blance; int val; struct t_type * lchild; struct t_type * rchild; }node; node * clue[200]; int clue_index=0; int max(int a,int b){ return a > b ? a : b; } node* get_node(){ node* newnode = (node*)malloc(sizeof(struct t_type)); newnode->lchild = newnode->rchild = NULL; 继续阅读 >>


张续 15/03/06 13:02:46