P3-P4: 目前遇见的问题很简单:硬盘容量不断提升,1TB的已成为主流,然而数据传输速度从1990年的4.4MB/s仅上升到当前约100MB/s 读取一个1TB的硬盘数据需要耗时至少2.5个小时.写入数据则会消耗更多时间.解决方法是从多个硬盘上读取,试想,若当前有100个盘,每个盘存储1%数据,则并行读取仅需2minutes则可读取完所有的数据. 与此同时,并行读写数据带来了几个问题: 1.某个硬件故障 - 采用数据备份机制 2.分析任务需要所有节点共同完成,结果正确性  - MapReduc…
P322 运行datanode和tasktracker的典型机器配置(2010年) 处理器:两个四核2-2.5GHz CPU 内存:16-46GN ECC RAM 磁盘存储器:4*1TB SATA 磁盘 网络:千兆以太网 Hadoop一般使用多核CPu和多磁盘提升硬件功能 P323 小集群VS大集群 对于几十个节点的小集群,在master上同时运行namenode和jobtracker通常没问题 但是随着集群节点增加,namenode的内存压力将逐步扩大,此时namenode和jobtracke…
笔记说明 <CSS3实战手册第3版(影印版)>可以消除Web设计工作的痛苦,并且带给你:HTML--重新入门.如果你是HTML新手,你会学到如何以CSS友好的方式进行基本页面构造.若你是HTML高手,你将学会如何像CSS设计者那样思考. 全书共18章,五大部分600来页. 可能是出版方认为本书英文很好懂,所以就不找译者翻译了. 本来为作为一个行外人及英语渣,看这书会是很艰难的过程.但读过之后发现,相比一些拙劣的中文翻译书,居然觉得轻松了很多. 不同于一般CSS书枯燥的"选择器-盒模型…
很早以前就听过李刚老师的疯狂java系列很不错,所以最近找一本拿来拜读,再此做下读书笔记,促进更好的消化. 使用Java数组之前必须先对数组对象进行初始化.当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组初始化完成.程序以后将不能重新改变数组对象在内存中的位置和大小. 从用法角度来看,数组元素相当于普通变量,程序既可把数组元素的值赋给普通变量,也可把普通变量的值赋给数组元素. 1.1数组初始化 1.1.1 Java数组是静态的 Java语言是典型的静态语言,因此Java的数组是静…
第一章:数据集群的演化与 早期的服务器架构 显然,应用是可扩展的,但是由于是集中式服务器,随着数据库性能达到极限,再想扩展就变得极端困难,于是出现了缓存.    缓存显然再次提升了可扩展性,减轻了数据库的负担.同时也带来了缓存数据同步的问题,书中介绍主要有2种解决办法: 1.时间限制缓存:指定缓存生存期,过期后重新读取(这会有同步问题,但是至少是可控的) 2.直写缓存:数据更新,直接写入数据库,并通知其他缓存该数据无效,这会有读写冲突,并且在读写频繁时性能也大打折扣.   于是,作者引入了 Ha…
第一章 基础 第一节 软件架构与软件架构师  简单的说软件架构即是为客户构建一个软件系统.架构师随便软件架构应运而生,架构师是一个角色. 2000年9月ANSI和IEEE发布了<密集性软件架构建议章程>Recommended practice for architectural description of software-intensive systems 1.  软件架构的目的 2.  架构师的角色与职责 第二节 成功的设计 成功的软件项目是充分实现了软件的需求,成功的软件设计是指成功的…
第一章:词法陷阱 编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”.例如,对于语句: if ( x == big ) big = x ; 它的第一个符号是C语言关键字if,紧接着下一个符号是左括号,在下一个符号是标识符x,在下一个是大于号,在下一个是标识符big,以此类推.在C语言中,符号之间的空白(包括空格.制表符.换行符)将被忽略,因此上面的语句还可以写成: if ( x == big ) big = x ; 这里还需要强调一下“C语言忽略符号间空白”.第一:“符号”的意思…
读<C++ Primer>才知道,自己对C++知之甚少... 写个博客记录下自己C++的成长,只是读书笔记,不是对<C++ Primer>知识点的总结,而是对自己在书上看到的以前不懂或不清楚的C++知识的一个记录,也希望和一起初读<C++ Primer>的朋友们一起成长. 新手笔记,大牛请无视. 1.cin和cout分别是istream和ostream的一个对象,定义在std中,另外,cin和cout是有返回值的返回值是这个istream或ostream对象(应该是引用…
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念.专业术语和组成部分. @ 目录 源程序是如何存储的 源程序到可执行文件的过程 shell是什么 典型系统的硬件组成 运行hello程序 高速缓存 存储设备的层次结构 操作系统管理硬件 进程&线程 虚拟内存 并发&并行 多核处理器&多线程   好久没有更新博客了,从国庆节到现在一直在整…
[序言] Spark 基于内存的基本类型 (primitive)为一些应用程序带来了 100 倍的性能提升.Spark 允许用户程序将数据加载到 集群内存中用于反复查询,非常适用于大数据和机器学习. 目前,Spark 已经超越 Spark 核心,发展到了 Spark streaming.SQL.MLlib. GraphX.SparkR 等模块. Spark 对曾经引爆大数据产业革命的 Hadoop MapReduce 的改进主要体现在这几个方面: 1.Spark 速度更快: 2.Spark 丰富…