摘要: 每一个Watcher具有如下属性: 1.KeeperState 2.EventType 3.path 4.process(WatchedEvent evnet)回掉方法 Watcher干嘛的?用户监听session的状态,数据节点的状态等。 watcher种类:defaultWatcher,非def 阅读全文
posted @ 2016-02-29 10:18 王宝生 阅读(3904) 评论(0) 推荐(0) 编辑
摘要: 在一个application内部,不同线程提交的Job默认按照FIFO顺序来执行,假设线程1先提交了一个job1,线程2后提交了一个job2,那么默认情况下,job2必须等待job1执行完毕后才能执行,如果job1是一个长作业,而job2是一个短作业,那么这对于提交job2的那个线程的用户来说很不友 阅读全文
posted @ 2016-02-23 14:28 王宝生 阅读(3526) 评论(0) 推荐(2) 编辑
摘要: 要想明白spark application调度机制,需要回答一下几个问题: 1.谁来调度? 2.为谁调度? 3.调度什么? 3.何时调度? 4.调度算法 前四个问题可以用如下一句话里来回答:每当集群资源发生变化时,active master 进程 为 所有已注册的并且没有调度完毕的applicati 阅读全文
posted @ 2016-02-21 19:42 王宝生 阅读(2245) 评论(1) 推荐(2) 编辑
摘要: 问题描述1 使用spark-shell ,sc.textFile(“hdfs://test02.com:8020/tmp/w”).count 出现如下异常: java.lang.RuntimeException: Error in configuring object at org.apache.h 阅读全文
posted @ 2016-11-17 15:10 王宝生 阅读(2376) 评论(0) 推荐(0) 编辑
摘要: 场景一: api: textFile("hfds://....").map((key,value)).reduceByKey(...).map(实际的业务计算逻辑) 场景:hdfs的某个文件有183个block,他们的大小分布非常不均匀时,比如有的是200M,有的是1M,有的是10K。此时spark 阅读全文
posted @ 2016-11-11 17:30 王宝生 阅读(2130) 评论(0) 推荐(0) 编辑
摘要: 1.树的等价命题 2.树的性质 3.生成树个数 3.最小生成树 树是很重要的一个数学概念,同时也是一个很重要的计算机概念。很多图的性质如果不方便验证,都会先在树上面验证。 1.树的等价定义 假设T至少有两个顶点,下述命题等价 a.无圈连通图 b.无圈且m=n-1 c.连通且m=n-1 d.连通图删去 阅读全文
posted @ 2016-07-26 12:03 王宝生 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 1.Curator Cache 与原生ZooKeeper Wacher区别 原生的ZooKeeper Wacher是一次性的:一个Wacher一旦触发就会被移出,如果你想要反复使用Wacher,就要在Wacher被移除后重新注册,使用起来很麻烦。使用Curator Cache 可以反复使用Wache 阅读全文
posted @ 2016-05-12 09:46 王宝生 阅读(4110) 评论(0) 推荐(0) 编辑
摘要: 要想使用Leader选举功能,需要添加recipes包,可以在maven中添加如下依赖: <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.9. 阅读全文
posted @ 2016-05-06 10:54 王宝生 阅读(5034) 评论(0) 推荐(1) 编辑
摘要: Spark使用ZooKeeper进行数据恢复的逻辑过程如下: 1.初始化:创建<CuratorFramwork,LeaderLatch,LeaderLatchListener>用于选举 创建CuratorFramework用于数据恢复。 2.选举:启动LeaderLatch,Curator开始接管选 阅读全文
posted @ 2016-05-04 21:57 王宝生 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 原声的ZooKeeper 的CRUD API有同步和异步之分,对于异步API,需要传递AsyncCallback回调。对于getData,getChildren,exists这三个API,还可以设置Watcher。这些功能在Curator中是如何实现的? 在Curator中,可以通过如下三种方式来异 阅读全文
posted @ 2016-05-04 15:33 王宝生 阅读(1668) 评论(0) 推荐(0) 编辑
摘要: 1.Shuffle Write 和Shuffle Read具体发生在哪里 2.哪里用到了Partitioner 3.何为mapSideCombine 4.何时进行排序 之前已经看过spark shuffle源码了,现在总结一下一些之前没有理解的小知识点,作为一个总结。 用户自定义的Partition 阅读全文
posted @ 2016-04-22 09:47 王宝生 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积。常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解:A=CD , A是m×n矩阵,C是m×4矩阵,D是4×n矩阵。 奇异值分解:A=UDVT 谱分解: 阅读全文
posted @ 2016-04-08 15:48 王宝生 阅读(5361) 评论(0) 推荐(0) 编辑
摘要: 1.赋范线性空间和内积空间 在线性代数的初级教材里,一般是在向量空间中定义内积,然后再由内积来导出范数,比如在n维实向量空间中: |x||=√<x,x> 在线性代数的高级教材中,一般是将内积和范数单独来定义的,而这之间可能并没有直接的关系。在向量空间中引入范数,可以得到一个赋范线性空间(normed 阅读全文
posted @ 2016-04-07 12:17 王宝生 阅读(937) 评论(0) 推荐(0) 编辑