暂无个人介绍
Scala中Range可以看成是List的特例,Range的包含的元素类型是Int, 本文介绍如何创建Range。代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找。 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-
在elasticsearch-hadoop的具体使用中碰到了几个问题,有必要记录一下,避免下次遇到时又要重新研究,以及用于生产的elasticsearch集群规划建议。 elasticsearch搜索功能强劲,就是查询语法复杂,presto提供了非常open的plugin机制,我改进了下原有的pre
无论是github上还是Apache基金会,每过一段时间都会有一些非常优秀的项目出现。如何在较短的时间内比较好的学习和把握住新项目的精髓及要点呢?
Scala越来越流行, Spark也愈来愈红火, 对spark的代码进行走读也成了一个很普遍的行为。不巧的是,当前java社区中很流行的ide如eclipse,netbeans对scala的支持都不算太好。在这种情况下不得不想到编辑器之神emacs,利用emacs+ensime来打造scala编程环
由于近期手头的工作和数据库的选型相关,纠结于是否使用一款NoSQL数据库来替换已有的MySQL数据库。在这个过程中随着学习研究的深入,对于二者的异同有了一些初步的认识和想法,将这些想法暂时记录下来,权且作为进一步学习数据库领域知识的开端。
本文主要讲述如何利用hortonworks sanbox来搭建hadoop2的学习环境。Hortonworks sanbox集成了hadoop2及其上的一些常用工具如hive, pig等。
storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街。如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能。storm-yarn就是这样一个项目,由yahoo实现,目前已经开源。或许谈起storm是大数据实时计算框
从用户层面来看TridentTopology,有两个重要的概念一是Stream,另一个是作用于Stream上的各种Operation。在实现层面来看,无论是stream,还是后续的operation都会转变成为各个Node,这些Node之间的关系通过重要的数据结构图来维护。具体到TridentTop
“源码走读系列”从代码层面分析了storm的具体实现,接下来通过具体的实例来说明storm的使用。因为目前storm已经正式迁移到Apache。WordCountTopology 使用storm来统计文件中的每个单词的出现次数。通过BasicDRPCTopology的实例来分析DRPCTopolo
TridentTopology是storm提供的高层使用接口,常见的一些SQL中的操作在tridenttopology提供的api中都有类似的影射。关于TridentTopology的使用及运行原理,当前进行详细分析的文章不多。 本文尝试TridentTopology是如何先一步步转换成普通的sto
本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程。本文从外部消息在worker进程内部的转化,传递及处理过程入手,一步步分析在worker-data中的数据项存在的原因和意义。试图从代码实现的角度来回答,如果是从头开始实现w
storm cluster可以想像成为一个工厂,nimbus主要负责从外部接收订单和任务分配。除了从外部接单,nimbus还要将这些外部订单转换成为内部工作分配,这个时候nimbus充当了调度室的角色。supervisor作为中层干部,职责就是生产车间的主任,他的日常工作就是时刻等待着调度到给他下
本文详细介绍了twitter storm中的nimbus节点的启动场景,分析nimbus是如何一步步实现定义于storm.thrift中的service,以及如何利用curator来和zookeeper server建立通讯。然后尝试分析tuple发送时的两个问题,一是消息在线程间的传递过程及利用
本文第一部分讲解利用Spark将json文件导入Cassandra;第二部分讲解SparkR的安装及使用。
Spark 1.1中对spark core的一个重大改进就是引入了sort-based shuffle处理机制,本文就该处理机制的实现进行初步的分析。
本文简要描述线性回归算法在Spark MLLib中的具体实现,涉及线性回归算法本身及线性回归并行处理的理论基础,然后对代码实现部分进行走读。第二部分讲解Spark MLLib中拟牛顿法L-BFGS的源码实现。
ShuffleMapTask的计算结果保存在哪,随后Stage中的task又是如何知道从哪里去读取的呢,这个过程一直让我困惑不已。那么,让我们一起了解ShuffleMapTask计算结果的保存与读取,以及WEB UI和Metrics初始化及数据更新过程分析。
今天不谈Spark中什么复杂的技术实现,只稍为聊聊如何进行代码跟读。本文讲解如何进行代码跟读及使用Intellij idea调试Spark源码。
本文分享在Standalone上部署方式分析以及sql的解析与执行 。
本篇主要阐述在TaskRunner中执行的task其业务逻辑是如何被调用到的,另外试图讲清楚运行着的task其输入的数据从哪获取,处理的结果返回到哪里,如何返回;以及对存储子系统进行分析 。
本文就standalone部署方式下的容错性问题做比较细致的分析,主要回答standalone部署方式下的包含哪些主要节点,当某一类节点出现问题时,系统是如何处理的;以及分享standalone cluster模式下资源的申请与释放。
本文详细描述如何在archlinux上搭建twitter storm cluster
ptmalloc2内存管理源码剖析初探
本文简述如何用ptrace来写一个非常简单的trace工具,用以trace程序的具体运行过程。以及描述两个gdb集成测试环境。
Bolt作为task被executor执行,而executor是一个个的线程,所以executor必须存在于具体的process之中,而这个process就是worker。至于worker是如何被supervisor创建,尔后worker又如何创建executor线程,这些暂且按下不表。
archlinux是在distrowatch里位于top 10的发行版中,唯一采用roll release的distribution。pacman和yaourt双剑合壁,使得在archlinux安装软件非常简单。本文将分享archlinux安装的简明指南。
近两周在做一个trouble shooting,需要对函数调用栈进行分析以找出入参和局部变量。因为在编译生成可执行程序的时候,用gcc进行了O2的优化,许多假设的函数调用栈模型都不成立了。花了一番周折,终于正确的翻译出入参和局部变量,此一旅程中的一些经验还是值得记录下来。
本文分享如何利用gdb对coredump进行分析,以及如何安装带有debug symbol的glibc。
本节分享使用GDB来进行STL容器的调试。
本文分享如何使用GDB进行多线程调试。
本文讨论强大的反汇编能力,以及helloworld最先是从main函数开始执行的么?
本文讲解如何让将调试的内容保存到外部文件里面,以及如何用各种方法查看变量的值。
GDB的功能很多,一下子全弄明白似乎不太可能。本文我们先聊聊简单的Hello World,以及如何让GDB在断点处打印一下诊断信息。
在Standalone部署模式下,Spark运行过程中会创建哪些临时性目录及文件,这些临时目录和文件又是在什么时候被清理,本文将就这些问题做深入细致的解答;并讨论日志级别修改问题。
Elasticsearch节点重启时背后发生的故事有哪些,应该注意哪些配置内容,本篇文章做一个简单的探讨。
自从建了Spark交流的QQ群之后,热情加入的同学不少,大家不仅对Spark很热衷对于Storm也是充满好奇。大家都提到一个问题就是有关storm内部实现机理的资料比较少,理解起来非常费劲,下文分享Apache Storm源码阅读笔记 &OLAP在大数据时代的挑战。