Apache Kylin Hadoop队列拆分方案设计与反思
背景需求分析方案设计方案排期需求1实现impersonate方案需求1实现在Yarn中为Hadoop-kylin用户赋予其他队列的提交权限需求2实现增加project粒度配置并实现配置优先级。反思1凡事一定要先搞清概念反思2勿忘初心(时刻不忘记最初目标)反思3跳出思维定式反思4避免沉没成本的影响总结
如何编写易读的代码
1易读的变量命名2易读的代码布局3易读的注释4易读的控制流5易读的表达式6易读的变量使用7抽取不相关的子问题8单一原则:一次只做好一件事9用自然语言将想法变成代码10少写代码11易读的测试12参考资料提升编程水平最有效的方法就是反反复复地修改和推敲代码。写出的代码能让人快速理解、轻松维护、容易扩展的
Java并发编程3:设计线程安全的类
1设计线程安全的类2实例封闭3线程安全性的委托4在现有的线程安全类中添加功能5将同步策略文档化6参考资料1设计线程安全的类设计线程安全类的基本要素:找出构成对象状态的所有变量。找出约束状态变量的不变性条件。建立对象状态的并发访问管理策略。如果对象的所有域都是基本类型的变量,这些变量就构成了对象的全部
读书笔记——《深入浅出面向对象分析和设计》
一写文章的技巧二什么是伟大的软件?三如何设计伟大软件?四需求是什么?五良好的设计六架构设计七设计原则八迭代和测试一写文章的技巧视觉化——图像优于文字使用对话方式和拟人化风格第一人称角度谈话式风格故事代替论述口语代替正式的术语和演说让学习者更深入的思考让读者集中注意力拨动读者的心弦二什么是伟大的软件?
算法之美——数组和数
single-number落单的数single-number-ii落单的数IIsingle-number-iiimajority-numbermajority-number-ii主元素IImajority-number-iii主元素IIIbest-time-to-buy-and-sell-stock
算法之美——动态规划
什么情况考虑动态规划什么情况下不考虑动态规划动态规划的实现方式动态规划的四要素坐标型动态规划单序列动态规划双序列动态规划数字三角形triangle最小路径和minimum-path-sum不同的路径unique-paths不同的路径IIunique-paths-ii爬楼梯climbing-stair
Java并发编程2:对象的共享
1可见性2“重排序”3非原子的64位操作4Volatile变量5对象的发布与逸出6线程封闭7不变性8安全发布9总结10参考资料本文将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。1可见性为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。加锁的含义不仅有互斥行为,还包括内
算法之美——二叉树
解题思路TraversevsDivideConquer二叉树前序遍历二叉树中序遍历二叉树后序遍历二叉树的最大深度二叉树的最小深度平衡二叉树判断最近公共祖先最近公共祖先2二叉树中的最大路径和二叉树的最大路径和II二叉树的层次遍历二叉树倒序层次遍历二叉树的锯齿形层次遍历验证二叉查找树二叉搜索树查找中序后
地图染色算法详解
本文写于我大一或大二时,今天整理时发现了就贴出来。小梦今天给大家分享一下栈的应用:利用栈的思想和回溯算法来解决地图染色问题。什么是回溯算法其实很简单,说白了就是试探法,像走迷宫一样,我们不断向前走着试探,遇到死路了,标记下,再往回退一步,再选择其他路线前进,如果在碰壁了,就标记下,再返回,再选择其他
读书笔记——《Effective Java》
服务提供者框架1学习一门语言必须掌握3件事情2静态工厂方法代替构造器3遇到多个构造器参数时要考虑用构建器4通过私有构造器强化类不可实例化的能力5避免创造不必要的对象6消除过期的对象引用7应该避免使用终结方法8覆盖equal时请遵循通用约定9覆盖equal时总要覆盖hashcode10始终覆盖toSt
Java并发编程1:线程安全性
线程安全的核心在于对状态访问进行管理,特别是对共享的和可变的状态进行访问。换句话说,对于不可变或者不共享的状态进行访问就不会存在线程安全性问题。共享意味着变量可以由多个线程访问。可变意味着变量的值在其生命周期可能发生变化。无状态对象一定是线程安全的。当在无状态的类中添加一个状态时,如果该状态完全由线
Apache Kylin Job 生成和调度详解
构建Cube的JobJob的生成ExecutableChainedExecutable单机调度单机锁分布式调度分布式调度如何实现HA分布式调度开发反思总结KylinJob生成和调度反思在ApacheKylinCube构建原理一文中我们知道了Cube的构建需要经过一系列的Job才能完成,那这些Job是
Apache Kylin 维度优化指南
为什么需要维度优化如何计算1个聚集组的维度组合数如何进行维度优化聚集组衍生维度强制维度层次维度联合维度ExtendedColumnHBaseRowkey顺序本文主要介绍ApacheKylin进行维度优化的常见方法。为什么需要维度优化因为如果不进行任何维度优化,直接将所有的维度放在一个聚集组里,Kyl
Apache Kylin Cube 构建原理
ApacheKylin是什么OLAP是什么Kylin如何实现超大数据集的秒级多维分析查询Kylin的预计算是如何实现的Cube和Cuboid是什么Cuboid的维度和指标如何转换为HBase的KV结构Cube构建过程重要源码分析不同类型的指标是如何进行聚合的SQL查询是如何转化为HBase的Scan
我的书单
分享下我近期阅读过比较优秀的书籍:综合《哪来的天才——练习中的平凡与伟大》★★★★★推荐理由:1不会再将智商不高作为失败的借口;2练习的本质是长时间做那些人们不能舒舒服服做到的事情;2针对性的,科学的刻意练习是十分重要且必要的;3更加相信勤奋的力量。《数学之美》★★★★★推荐理由:1那些看似高深的技
Apache Kylin 查询指标
Kylin1.5.4版本将支持收集查询指标到JMX,本文将介绍收集查询指标的原因,查询指标的具体内容和含义,查询指标的日常作用,如何收集查询指标。Kylin为什么需要查询指标?Kylin查询指标的具体内容和含义Kylin查询指标的日常作用如何收集Kylin查询指标Kylin为什么需要查询指标?目前K
读书笔记——《智能时代》
数据——人类建造文明的基石数据最大的作用在于承载信息数据信息知识通过测量星球的位置和对应的时间,就得到数据通过这些数据得到星球运动的轨迹,就是信息通过信息总结出开普勒三定律,就是知识使用数据的标准流程获取数据——>分析数据-->建立模型-->预测未知数据的相关性在如今大数据背景下,
算法之美——二分法
什么时候用二分?二分法模板的四点要素二分法关键classical-binary-searchfirst-position-of-targetlast-position-of-targetsearch-insert-positionsearch-a-2d-matrixsearch-a-2d-matri
读书笔记——《马云,我的世界从不言败》
要坦然面对自己不成功的过去男人的胸怀是委屈撑大的要不怕被嘲笑,不怕丢脸要能从每一个影响过你的人身上找到各种机会,然后不断学习,从而反过来影响别人帮助朋友应该不计回报,真心去帮助朋友,我们的每个善行在将来终将得到回报遵守自己的诺言离开公司,学习后不要去抱怨,抱怨是没有修养的体现奋斗的动力并非财富而是梦
LRU和LFU缓存置换算法
为什么需要CacheCache是什么Cache无处不在常用的Cache服务器为什么需要Cache为什么不全放在Cache中为什么Cache需要置换LFUCache置换算法LRUCache置换算法参考资料为什么需要Cache为了解决俩个存储介质之间的速度不匹配,比如CPU和内存,比如内存和磁盘,比如本