摘要:
最近看epoll 和 select 都涉及到一个东西叫做设备等待队列,等待队列是如何工作的,内核是怎么管理的?看这篇文章问题:进程是如何组织起来的?我们知道,进程是有很多种状态的:include/linux/sched.h#define TASK_RUNNING 0#define TASK_INT... 阅读全文
摘要:
MapReduce是hadoop提供一个可进行分布式计算的框架或者平台,显然这个平台是多用户的,每个合法的用户可以向这个平台提交作业,那么这就带来一个问题,就是作业调度。 任何调度策略都考虑自己平台调度需要权衡的几个维度,例如操作系统中的进程调度,他需要考虑的维度就是资源(CPU)的最大利用率(吞吐)和实时性,操作系统对实时性的要求很高,所以操作系统往往采用基于优先级的、可抢占式的调度策略,并且赋予IO密集型(相对于计算密集型)的进程较高的优先级,扯的有点远。 回到hadoop平台,其实MapReduce的作业调度并没有很高的实时性的要求,本着最大吞吐的原则去设计的,所以MapR... 阅读全文
摘要:
大部分的HDFS程序对文件操作需要的是一次写多次读取的操作模式。一个文件一旦创建、写入、关闭之后就不需要修改了。这个假定简单化了数据一致的问题和并使高吞吐量的数据访问变得可能。1. 读文件从上图可以看出,客户端读取数据时,首先从namenode获取如下信息(这些元数据信息是在内存中,所以查询速度很快,这个过程对客户端是透明的):a. 该文件有哪些数据块b.这些数据块都放在哪里或者说是取哪个节点上的什么数据块然后,客户端直接从datanode中以文件流的方式读取数据最后,关闭这个文件流一个问题:因为每个数据块都有三个备份,那么取哪个比较好?选取读取代价最小的节点,首先会在同一个节点中选取(如果客 阅读全文
摘要:
一. hdfs设计的动机为大规模分布式计算准备的分布式文件系统,并非实时性要求很高的文件系统。二. 设计的取舍1. 因为要求有高吞吐量,所以牺牲读取文件的实时性,实时性要求高的分布式文件系统可以选择hbase2. 使用廉价的机器,所以任意一个存储节点可能会挂掉,将之视为hadoop的常态3. 流式存储,一次写入,多次读取进行数据迭代,写入也尽量采取在文件的末尾进行追加的方式,在任意一处写入数据的操作代价很高,尽量不要做4. 不鼓励使用大量的小文件处理,每个小文件都需要都有一个元数据来存储这些小文件的信息,并且这些信息都存储在namenode上,一条元数据大概是150K左右的大小,而nameno 阅读全文
摘要:
Partitioning, Shuffle and sort what happened?- PartitioningPartitioning is the process of determining which reducer instance will receive which intermediate keys and values. Each mapper must determine for all of its output (key, value) pairs which reducer will receive them. It is necessary that for 阅读全文
摘要:
序:终于开始接触hadoop了,从wordcount开始1. 采用hadoop streamming模式优点:支持C++ pathon shell 等多种语言,学习成本较低,不需要了解hadoop内部结构调试方便:cat input | ./map | sort | ./reduce > outputhadoop 就是提供了一个分布式平台实现了上述脚本的功能,这是一次mapreduce的过程一个例子: 1 #!/bin/bash 2 source build.env 3 $hadoop_bin fs -rmr $env_root 4 $hadoop_bin fs -mkdir $env. 阅读全文
摘要:
1. 重构2. debug3. 性能调优 阅读全文
摘要:
2012年7月24日下午14:20---23:30,我应邀参加了《腾讯大讲堂》的特别讲座,由微信之父张小龙主讲《微信背后的产品观》。张小龙的讲演长达8小时20分,是我此生参加过的最漫长讲座。腾讯为此开设17个分会场,同步直播讲座,参加者超过1700人。晚上19:10分听众晚餐,20:30继续进行。恢复演讲时在线直播用户依然有600余人,加上分会场听众,总计有超过800人听完全程讲演。很多人并不知道,这可能是张小龙第一次也是最后一次做公开讲演,在公众面前讨论产品。在这次演讲中,他把自己15年来关于产品的所有经验和心得一次性全部公开,今后将不再做类似公开课。这一讲座受到腾讯保密协定约束,因此其中令 阅读全文
摘要:
Google搜索的语音输入功能:1. 检测浏览器是否支持if (document.createElement("input").webkitSpeech === undefined) { alert("Speech input is not supported in your browser.");} 2. 下面说下怎么实现,其实很简单。<input type="text" x-webkit-speech /> 就一句(so high),3. 当然还有别的属性可以添加:lang设置语言种类:<input type=& 阅读全文