摘要: channel是golang中很重要的概念,配合goroutine是golang能够方便实现并发编程的关键。channel其实就是传统语言的阻塞消息队列,可以用来做不同goroutine之间的消息传递,由于goroutine是轻量级的线程能够在语言层面调度,所以channel在golang中也常被用 阅读全文
posted @ 2016-11-12 11:20 bonelee 阅读(7385) 评论(0) 推荐(0)
摘要: 对Java程序员来说,我们对面向对象的编程(OOP)自然都是烂熟于胸的,但语言也极大地影响了我们构建面向对象应用程序的方式。(现在的OOP已经和Alan Kay当初创造这个词时候的初衷大不相同了,他的主要思想是采用消息传递并消灭所有状态数据(他认为,系统是由一些类似于生物细胞那样的对象构成的,这些对 阅读全文
posted @ 2016-11-12 10:47 bonelee 阅读(3083) 评论(0) 推荐(0)
摘要: elasticsearch 自定义ID: 启动本地es,然后写入数据,data2.json: 通过批量插入上述数据: 可以看到新生成的文档_id为uuid的数值! 阅读全文
posted @ 2016-11-11 20:18 bonelee 阅读(12047) 评论(0) 推荐(0)
摘要: 有时自己的业务需要自己实现spark的分区函数 以下代码是实现一个自定义spark分区的demo 实现的功能是根据key值的最后一位数字,写到不同的文件 例如: 10写入到part-00000 11写入到part-00001 . . . 19写入到part-00009 自定义分区: 阅读全文
posted @ 2016-11-11 19:54 bonelee 阅读(3804) 评论(0) 推荐(0)
摘要: 路由文档到分片 当你索引一个文档,它被存储在单独一个主分片上。Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢? 进程不能是随机的,因为我们将来要检索文档。事实上,它根据一个简单的算法决定: routing值是一个任意字符串 阅读全文
posted @ 2016-11-11 19:02 bonelee 阅读(4703) 评论(2) 推荐(0)
摘要: spark streaming 入门例子: spark shell 然后运行bash脚本,在tmp里写入数据,文件名随机: 结果为: 阅读全文
posted @ 2016-11-11 16:26 bonelee 阅读(1077) 评论(0) 推荐(0)
摘要: ElasticSearch-hadoop saveToEs源码分析: 类的调用路径关系为: 他们的作用: EsSpark,读取ES和存储ES的入口 EsRDDWriter,调用RestService创建PartitionWriter,对ES进行数据写入 RestService,负责创建 RestRe 阅读全文
posted @ 2016-11-11 14:36 bonelee 阅读(4736) 评论(0) 推荐(0)
摘要: 资源参数调优 了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着 阅读全文
posted @ 2016-11-08 11:18 bonelee 阅读(4874) 评论(0) 推荐(1)
摘要: 调优概述 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利 阅读全文
posted @ 2016-11-08 11:17 bonelee 阅读(10957) 评论(0) 推荐(2)
摘要: RDD底层实现原理 RDD是一个分布式数据集,顾名思义,其数据应该分部存储于多台机器上。事实上,每个RDD的数据都以Block的形式存储于多台机器上,下图是Spark的RDD存储架构图,其中每个Executor会启动一个BlockManagerSlave,并管理一部分Block;而Block的元数据 阅读全文
posted @ 2016-11-07 17:24 bonelee 阅读(6790) 评论(1) 推荐(0)