自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 The Architecture of Open Source Applications——阅读笔记part 1

Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful o...

2016-11-29 09:25:00 185

转载 elasticsearch term match multi_match区别

转自:http://www.cnblogs.com/yjf512/p/4897294.htmlmatch最简单的一个match例子:查询和"我的宝马多少马力"这个查询语句匹配的文档。{ "query": { "match": { "content" : { "query" : "我的宝马多少马力" ...

2016-11-26 22:06:00 574

转载 Javascript的this用法

Javascript的this用法转自:http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.htmlthis是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,  function test(){    th...

2016-11-26 17:01:00 59

转载 javascript里的偏函数——本质函数式编程+闭包,返回函数

最终效果:var greet = function(greeting, name) { return greeting + ' ' + name;};var sayHelloTo = _.partial(greet, 'hello');sayHelloTo('fred');// => 'hello fred'来自:http://lodash...

2016-11-25 17:52:00 187

转载 javascript primise本质——为了简化异步编码而针对异步操作的代理

概述所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。语法new Promise(executor);new Promise(function(resolve, reject) { ... });参数executor带有resolve、reject两个参数的一个函数。这个函数在创建Promise对象的时候会立...

2016-11-25 17:14:00 121

转载 JavaScript 运行机制详解:Event Loop——续

转自:http://www.ruanyifeng.com/blog/2014/10/event-loop.html五、定时器除了放置异步任务的事件,"任务队列"还可以放置定时事件,即指定某些代码在多少时间之后执行。这叫做"定时器"(timer)功能,也就是定时执行的代码。定时器功能主要由setTimeout()和setInterval()这两个函数来完成,它们的内部运行机制完...

2016-11-25 16:10:00 86

转载 JavaScript 运行机制详解:Event Loop

转自:http://www.ruanyifeng.com/blog/2014/10/event-loop.html一、为什么JavaScript是单线程?JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定Ja...

2016-11-25 16:09:00 61

转载 angularjs 中的$digest和$apply区别

$digest和$apply在Angular中,有$apply和$digest两个函数,我们刚才是通过$digest来让这个数据应用到界面上。但这个时候,也可以不用$digest,而是使用$apply,效果是一样的,那么,它们的差异是什么呢?最直接的差异是,$apply可以带参数,它可以接受一个函数,然后在应用数据之后,调用这个函数。除此之外,还有别的区别吗?在简单的数据模型...

2016-11-25 14:15:00 91

转载 深入理解$watch ,$apply 和 $digest --- 理解数据绑定过程——续

Angular什么时候不会自动为我们$apply呢?这是Angular新手共同的痛处。为什么我的jQuery不会更新我绑定的东西呢?因为jQuery没有调用$apply,事件没有进入angular context,$digest循环永远没有执行。我们来看一个有趣的例子:假设我们有下面这个directive和controllerapp.jsapp.directive('...

2016-11-25 11:37:00 101

转载 深入理解angularjs $watch ,$apply 和 $digest --- 理解数据绑定过程

转自:http://www.angularjs.cn/A0a6Angular用户都想知道数据绑定是怎么实现的。你可能会看到各种各样的词汇:$watch,$apply,$digest,dirty-checking... 它们是什么?它们是如何工作的呢?让我们从头开始吧。浏览器事件循环和Angular.js扩展我们的浏览器一直在等待事件,比如用户交互。假如你点击一个按钮或者在输入...

2016-11-25 11:34:00 114

转载 es-hadoop saveToEsWithMeta

@Test def testEsRDDWriteWithDynamicMapping() { val doc1 = Map("one" -> null, "two" -> Set("2"), "three" -> (".", "..", "..."), "number" -> 1) val doc2 = Map("OTP" -&g...

2016-11-24 19:57:00 220

转载 angularjs 中的scope继承关系——(2)

转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.htmlangularjs 中的scope继承关系ng-include假设在我们的 controller 中,$scope.myPrimitive = 50;$scope.myObject = {aNumber: 11}...

2016-11-22 18:59:00 91

转载 angularjs 中的scope继承关系——(1)

转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.htmlJavaScript 的原型链继承假设父类 parentScope 有如下成员属性 aString, aNumber, anArray, anObject, 以及 aFunction。子类 childScope 原型继承父类 parentScope,...

2016-11-22 18:58:00 85

转载 ES curl bulk 导入数据

比如我们现在有这样一个文件,data.json:{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }{ "field1" : "value1" }它的第一行定义了_index,_type,_id等信息;第二行定义了字段的信息。然后执行命令:curl -XPOST localhos...

2016-11-20 21:27:00 303

转载 最新的ES 5.0路由算法底层实现

http://www.cnblogs.com/bonelee/p/6078947.html 里分析了ES bulk实现,其中路由代码:ShardId shardId= clusterService.operationRouting().indexShards(clusterState, concreteIndex, request.id(), request.routing())....

2016-11-18 19:54:00 140

转载 ES bulk源码分析——ES 5.0

对bulk request的处理流程:1、遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话)、指定的timestamp(如果没有带timestamp会使用当前时间),如果没有指定id字段,在action.bulk.action.allow_id_generation配置为true的情况下,会自动生成一个base64UUID作为id字段...

2016-11-18 19:51:00 112

转载 ES批量索引写入时的ID自动生成算法

对bulk request的处理流程:1、遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话)、指定的timestamp(如果没有带timestamp会使用当前时间),如果没有指定id字段,在action.bulk.action.allow_id_generation配置为true的情况下,会自动生成一个base64UUID作为id字段...

2016-11-17 21:16:00 626

转载 自定义Spark Partitioner提升es-hadoop Bulk效率

http://www.jianshu.com/p/cccc56e39429/comments/2022782 和https://github.com/elastic/elasticsearch-hadoop/issues/745 都有提到通过自定义Spark Partitioner提升es-hadoop Bulk效率,但是无可运行代码,自己针对其思路在spark-shell里实现了一份...

2016-11-12 18:06:00 120

转载 golang channel本质——共享内存

channel是golang中很重要的概念,配合goroutine是golang能够方便实现并发编程的关键。channel其实就是传统语言的阻塞消息队列,可以用来做不同goroutine之间的消息传递,由于goroutine是轻量级的线程能够在语言层面调度,所以channel在golang中也常被用来同步goroutine。一般channel的声明形式为:var chanName c...

2016-11-12 11:20:00 405

转载 STM 软件事务内存——本质是为提高并发,通过事务来管理内存的读写访问以避免锁的使用...

对Java程序员来说,我们对面向对象的编程(OOP)自然都是烂熟于胸的,但语言也极大地影响了我们构建面向对象应用程序的方式。(现在的OOP已经和Alan Kay当初创造这个词时候的初衷大不相同了,他的主要思想是采用消息传递并消灭所有状态数据(他认为,系统是由一些类似于生物细胞那样的对象构成的,这些对象通过消息传递进行通信,且无需持有任何状态)——go语言)对于Java程序员来说,当我...

2016-11-12 10:47:00 169

转载 elasticsearch 自定义_id

elasticsearch 自定义ID:curl -s -XPUT localhost:9200/web -d '{ "mappings": { "blog": { "_id": { "path": "uuid" }, "prope...

2016-11-11 20:18:00 771

转载 自定义实现spark的分区函数

有时自己的业务需要自己实现spark的分区函数以下代码是实现一个自定义spark分区的demo实现的功能是根据key值的最后一位数字,写到不同的文件例如:10写入到part-0000011写入到part-00001...19写入到part-00009自定义分区:import org.apache.spark.{Partitioner, Sp...

2016-11-11 19:54:00 204

转载 elasticsearch 路由文档到分片

路由文档到分片当你索引一个文档,它被存储在单独一个主分片上。Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢?进程不能是随机的,因为我们将来要检索文档。事实上,它根据一个简单的算法决定:shard = hash(routing) % number_of_primary_shardsroutin...

2016-11-11 19:02:00 117

转载 spark streaming 入门例子

spark streaming 入门例子:spark shellimport org.apache.spark._import org.apache.spark.streaming._sc.getConf.setMaster("local").setAppName("RDDTest");val ssc = new StreamingContext(sc, Se...

2016-11-11 16:26:00 63

转载 ElasticSearch-hadoop saveToEs源码分析

ElasticSearch-hadoop saveToEs源码分析:类的调用路径关系为:EsSpark -> EsRDDWriter -> RestService -> RestRepository -> Rest...

2016-11-11 14:36:00 316

转载 spark 资源参数调优

资源参数调优了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着作业运行原理中的某个部分,我们同时也给出了一个调优的参考值。num-executor...

2016-11-08 11:18:00 61

转载 spark 任务运行原理

调优概述在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各...

2016-11-08 11:17:00 143

转载 spark RDD底层原理

RDD底层实现原理RDD是一个分布式数据集,顾名思义,其数据应该分部存储于多台机器上。事实上,每个RDD的数据都以Block的形式存储于多台机器上,下图是Spark的RDD存储架构图,其中每个Executor会启动一个BlockManagerSlave,并管理一部分Block;而Block的元数据由Driver节点的BlockManagerMaster保存。BlockManagerS...

2016-11-07 17:24:00 249

转载 用实例说明Spark stage划分原理

注意:此文的stage划分有错,stage的划分是以shuffle操作作为边界的,可以参考《spark大数据处理技术》第四章page rank例子!参考:http://litaotao.github.io/deep-into-spark-exection-model我们用一个例子来说明,结合例子和运行截图来理解。1.1 例子,美国 1880 - 2014 年新生婴儿数据统计...

2016-11-07 16:37:00 258

转载 Spark任务提交底层原理

Driver的任务提交过程1、Driver程序的代码运行到action操作,触发了SparkContext的runJob方法。2、SparkContext调用DAGScheduler的runJob函数。3、DAGScheduler把Job划分stage,然后把stage转化为相应的Tasks,把Tasks交给TaskScheduler。4、通过TaskScheduler把Task...

2016-11-07 16:23:00 268

转载 spark shuffle内在原理说明

在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑。ShuffleShuffle是MapReduce框架中的一个特定的phase,介于Map phas...

2016-11-07 15:46:00 171

转载 spark RDD操作的底层实现原理

RDD操作闭包外部变量原则 RDD相关操作都需要传入自定义闭包函数(closure),如果这个函数需要访问外部变量,那么需要遵循一定的规则,否则会抛出运行时异常。闭包函数传入到节点时,需要经过下面的步骤:驱动程序,通过反射,运行时找到闭包访问的所有变量,并封成一个对象,然后序列化该对象将序列化后的对象通过网络传输到worker节点worker节点反序列化闭...

2016-11-07 15:15:00 145

转载 Spark累加器(Accumulator)陷阱及解决办法

Accumulator简介Accumulator是spark提供的累加器,顾名思义,该变量只能够增加。只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=)。你也可以在为Accumulator命名(不支持Python),这样就会在spark web ui中显示,可以帮助你了解程序运行的情况。Accumulator使用...

2016-11-07 15:09:00 86

转载 spark collect获取所有元素

from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local").setAppName("My App")sc = SparkContext(conf = conf)lines = sc.textFile("/var/log/syslog")LinesError = lin...

2016-11-06 10:03:00 176

转载 spark submit 入门

spark dirver本质是一个spark集群的驱动程序,你要调用spark集群的计算功能,必须要通过它!from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local").setAppName("My test App")sc = SparkContext(conf=conf...

2016-11-05 19:21:00 65

转载 pyspark使用ipython

在Ubuntu下,安装ipython很简单:$sudo apt-get install ipython在bashenv中添加变量:export IPYTHON=1export IPYTHON_OPTS=" "再次使用,已经是ipython了!$SPARK_HOME/bin/pyspark转载于:https://www.cnblogs.com/bonelee/...

2016-11-05 18:51:00 162

转载 top k

def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in range(left, right): if arr[i] < pivot: ...

2016-11-03 09:01:00 78

转载 快速排序

发现自己写起来很不顺手,得从最右边找出pivot元素是最方便的!以最左边的元素作为pivot的代码,看到好多坑:def qsort(arr, left, right): if left >= right: return pivot = arr[left] p = left+1 for i in range(lef...

2016-11-02 13:14:00 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除