TPCx-BB是大数据基准测试工具,它通过模拟零售商的30个应用场景,执行30个查询来衡量基于Hadoop的大数据系统的包括硬件和软件的性能.其中一些场景还用到了机器学习算法(聚类.线性回归等).为了更好地了解被测试的系统的性能,需要对TPCx-BB整个测试流程深入了解.本文详细分析了整个TPCx-BB测试工具的源码,希望能够对大家理解TPCx-BB有所帮助. 代码结构 主目录($BENCH_MARK_HOME)下有: bin conf data-generator engines tools…
 壹 ❀ 引 在angularjs开发中,指令的使用是无处无在的,我们习惯使用指令来拓展HTML:那么如何理解指令呢,你可以把它理解成在DOM元素上运行的函数,它可以帮助我们拓展DOM元素的功能.比如最常用ng-click可以让一个元素能监听click事件,这里你可能就有疑问了,同样都是监听为什么不直接使用click事件呢,angular提供的事件指令与传统指令有什么区别?我们来看一个例子: <body ng-controller="myCtrl as vm"> <d…
 壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了.就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包能解决哪些问题场景我了解的并不多,这也是我想整理一篇闭包的原因.我们来看一段代码,很明显这是一个闭包,那么请问闭包指代的是下方代码中的哪一部分呢?本文开始. function outer() { let name = '听风是风'; function insider() { console.log(…
 壹 ❀ 引 我在 angularjs 一篇文章看懂自定义指令directive 一文中详细介绍了directive基本用法与完整属性介绍.directive是个很神奇的存在,你可以不设置template属性单纯作为操作DOM的函数,也就是俗称的指令:你也可以带上template让其变成高度复用的组件.但在angularjs1.5版本之后我们可以使用component专门用于创建组件,当然你要坚持使用directive创建组件也没有问题,那么本文将带你了解angularjs component,…
Spark 1.6.x的新特性Spark-1.6是Spark-2.0之前的最后一个版本.主要是三个大方面的改进:性能提升,新的 Dataset API 和数据科学功能的扩展.这是社区开发非常重要的一个里程碑.1. 性能提升根据 Apache Spark 官方 2015 年 Spark Survey,有 91% 的用户想要提升 Spark 的性能.Parquet 性能自动化内存管理流状态管理速度提升 10X 2. Dataset APISpark 团队引入了 DataFrames,新型Datase…
这几天学习了MapReduce,我参照资料,自己又画了两张MapReduce的架构图. 这里我根据架构图以及对应的源码,来解释一次分布式MapReduce的计算到底是怎么工作的. ​话不多说,开始! 首先,结合我画的架构图来进行解释. 上图是MapReduce的基本运行逻辑.把图从中间切分,左边为Map任务,右边为Reduce任务.Map的输出是Reduce的输入.因此Map执行完毕Reduce才能执行,两者的执行顺序是一个线性关系,即输入输出的关系为:HDFS->Map->Reduce-&g…
工作中发现在oozie中使用sqoop与在shell中直接调度sqoop性能上有很大的差异.为了更深入的探索其中的缘由,开始了oozie的源码分析之路.今天第一天阅读源码,由于没有编译成功,不能运行测试用例,直接使用sublime肉眼阅读,还是挺费劲的. 虽然流程还不是顺畅,但是大体上的内容还算是了解了. 我这里使用的是oozie4.2的版本,之前稍微看过4.3版本的,源码上还是有一定的差异的. 看上面的图,大致理解oozie的过程是: oozie cli提交任务 oozie server创建一…
一.前言 长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章. 二.导读 1.为什么有多线程? 2.线程安全描述的本质问题是什么? 3.Java内存模型(JMM)数据可见性问题.指令重排序.内存屏障 三.揭晓答案 1.为什么有多线程 谈到多线程,我们很容易与高性能画上等号,但是并非如此,举个简单的例子,从1加到100,用四个线程计算不一定比一个线程来得快.因为线程的创建和上下文切…
 壹 ❀ 引 我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.log('听风是风'); }; f1(); //echo function f1() { console.log('echo'); }; f1(); //echo 按照代码书写顺序,应该先输出 听风是风,再输出 echo才对,很遗憾,两次输出均为 echo:如果我们将上述代码中的函数声明改为函数表达式,…
看完这篇文章,你能搞清楚以下问题: 1.varchar(100)和varchar(10)的区别在哪里? 2.varchar能存多少汉字.数字? 3.varchar的最大长度是多少呢? 4.字符.字节.位,之间的关系? 5.mysql字段类型存储需要多少字节? 接下来请仔细看,整理不易啊. 1.varchar(100)和varchar(10)的区别在哪里? 一般初学会认为,二者占用的空间是一样的.比如说我存储5个char,二者都是实际占用了5个char了[不准确的想法:varchar在实际存储的时…