ThousandHu`s blog

千里之行 始于足下


  • 首页

  • 归档

  • 标签

spark2.0源码阅读--spark作业提交

发表于 2016-10-22
内容安排按照《apache spark 源码阅读》。这本书基于古老的spark 1.0.2。我看的代码基于2.0。这篇文章先粗略的过一遍spark的核心代码 SparkContext的初始化综述 原书3.2节 p27 sparkContext初始化时主要做这样几件事情: 根据初始化入参生成SparkConf,再根据SparkConf来创建SparkEnv。sparkEnv的主要部件有 cacheManager:用于储存中间计算结果 mapOutputTracker:用来缓存MapStatus信息,并提供从MapOutMaster获取信息的功能。获取的Map out的信息根据master ...
阅读全文 »

第六章 枚举和注解_effective_java

发表于 2016-10-18
第三十条:用enum代替int常量相比于声明成final static int 或string,使用枚举是更好的选择: int的缺点:无法打印出有效值,无法保证一个变量的int值一定有效(在你列出的备选值中) string:基于字符串比较带来性能问题;无法在编译时杜绝拼写错误等问题。 enum的好处。 是单例的泛型。 保证被传到的参数一定是有效值。 包含同名常量的枚举类型可以在一个系统中共存 枚举可以声明方法和域,用这些方法可以将枚举从一个简单的集合变成一个全功能的抽象,比如这个行星的例子: 123456789101112131415161718192021222324252627pu ...
阅读全文 »

mesos vs yarn

发表于 2016-10-17
mesos架构mesos由4各部分组成: mesos-master:负责管理接入mesos的各个framework(由frameworks_manager管理)和slave(由slaves_manager管理),并将slave上的资源按照某种策略分配给framework(由独立插拔模块Allocator管理)。 mesos-slave: 负责接收mesos-master的命令,管理节点上的task。 Framework:指的是外部框架。他们通过注册的方式接入mesos。Framework接入mesos需要实现自己的scheduler。 executor:executor用于启动框架内的tas ...
阅读全文 »

实现_Nosql精粹

发表于 2016-10-14
CP AP 优点 缺点 适用场景 不适用场景 键值数据库 Berkeley DB / MemcacheDB / Redis / Scalaris Riak / Dynamo / Voldemort 1.数据结构支持广泛,值可以是二进制,文本等各种格式。 2.凯苏查询 1.只能根据key来搜索,无法根据值来搜索。2.只有针对单行的一致性。乐观写入实现成本高 1.存放会话信息 2.用户配置信息 3.购物车数据 1. 需要在数据间建立联系 2.含有多项操作的事务 3.按值查询数据 4.操作关键字集合 文档数据库 MongoDB / Terrastore SimpleDB / C ...
阅读全文 »

概念_Nosql精粹

发表于 2016-10-13
第一章 为什么使用NoSQL 关系型数据库存在阻抗失衡的问题(关系模型与内存中的数据结构不匹配) 数据库领域的迁移趋势是:原来各个应用程序douban同一份数据库当做共用的集成点;而现在各个程序封装自己的数据库,通过服务相互继承 使用NoSQL的原因是: 待处理数据量很大或者对效率要求很高,从而必须要放在集群上执行 想采用一种更方便的数据交互方式来提高数据访问效率 NoSQL的共同特征是 不适用关系模型 在集群中运行良好 开源 无模式 NoSQL崛起产生的影响就是混合持久化。就是不一味使用数据库,而是根据不同场景选用不同的数据存储技术 第二章 聚合数据库模型NoSQL模型可以分为键值 ...
阅读全文 »

第五章_泛型_effective_java

发表于 2016-10-09
Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。之前set都是没有<>,可以接受任何类型的参数,而错误插入可以通过编译和运行,直到取出结果时才会报错。Java深度历险(五)——Java泛型 泛型与类型擦除有关,下面一段简单讲了下原理和特性 正确理解泛型概念的首要前提是理解类型擦除(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如 ...
阅读全文 »

第四章_类和接口_effective_java

发表于 2016-10-08
第十三条:使类和成员访问性最小化 尽量使每个类或者成员变量不被外界访问 如果一个包级私有的顶层类或者接口只是在某一类内部被使用,则应该考虑将其声明为那个类的私有嵌套类 如果方法a覆盖了超类中的方法b,则a的访问级别就不允许低于b的访问级别,这样可与确保任何可使用超类实例的地方也可以使用子类的实例。 实例域不可以是共有域。 公有域意味着你放弃了对该域的限制能力。同时包含公有可变域的类并不是线程安全的 不可变静态域可以通过公有静态final域来暴露这些常量。这种域的命名建议使用大写字母加下划线 长度非零的数组总是可变的,因为公有静态final数据域几乎总是错误的,因为客户端能够修改数据 ...
阅读全文 »

第三章_对所有对象都通用的方法_effective java

发表于 2016-10-02
第三章 对所有对象都通用的方法 第八条:覆盖equals时请遵守通用约定在以下情况下,不需要覆盖equals: 类的每个实例本质上都是唯一的:即代表实体的类而不是值的类,比如Thread 不关心类是否提供了“逻辑相等”的测试功能:如Random 超类已经覆盖了equals,并且从超类继承过来的行为是合理的:比如HashMap从AbstractMap继承的equals。 类是私有的,确定equals不会被调用 当类具有自己特定的逻辑相等时,需要覆盖equals,这是需要遵守以下约定: 自反性:对于任何非null的x,x.equals(x) 对称性:x.equals(y) 等价于 y.equ ...
阅读全文 »

第二章_创建和销毁对象_effective java

发表于 2016-10-01
第一条 考虑使用静态工厂方法来代替构造器静态构造方法相比如构造器的优势: 可以自主命名 不必每次调用的时候都创建一个新对象。(flyweight模式): 12345public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE);}public static final Boolean TRUE = new Boolean(true);public static final Boolean FALSE = new Boolean(false); 可以返回源类型的任何子类。比如EnumSet会 ...
阅读全文 »

深入解析yarn架构设计与技术实现-离线计算框架MapReduce

发表于 2016-09-15
深入解析yarn架构设计与技术实现-MR MR客户端mr的客户端主要是通过ApplicationClientProtocol和MRClientProtocol两个rpc通信协议和ResourceManager以及ApplicationMaster通信。 具体来讲,在yarn上,client会创建一个YarnRunner作为真正的client。该client首先会调用ApplicationClientProtocol提交application,当application成功提交后会通过ClientCache得到clientServiceDelegate与ApplicationMaster直接交互来 ...
阅读全文 »
123…10
ThousandHu

ThousandHu

千里之行 始于足下

91 日志
49 标签
github zhihu 微信公众号:thousandhu学架构
© 2015 - 2017 ThousandHu
由 Hexo 强力驱动
主题 - NexT.Mist