Kafka技术内幕样章 层级时间轮

2016-05-26
阅读 9 分钟
9.1k
那么Kafka的Timer定时器是如何存储DelayedOperation,又是如何在有任务超时的时候能准确地轮询出来。在Java中有多种方案可以做到任务的延迟执行,比如java.util.Timer和TimerTask的调度,或者DelayedQueue和实现Delayed接口的线程。但这些对于Kafka这种动辄成千上万个请求的分布式系统而言都过于重量级,所以Kafka的Time...

Kafka技术内幕-日志压缩

2016-05-24
阅读 9 分钟
9.3k
分布式存储系统除了要保证客户端写请求流程的正确性,节点可能会非正常宕机或者需要重启,在启动的时候必须要能够正常地加载/恢复已有的数据,日志管理类在创建的时候要加载已有的所有日志文件,这和创建Log时要加载所有的Segment是类似的。LogManager的logDirs参数对应了log.dirs配置项,每个TopicPartition文件夹都对...

IDEA无法导入Maven工程

2015-07-23
阅读 19 分钟
39.5k
事情源于: 在Mac上pull下来的项目和本地的不一致, 所以在终端重命名了项目,并从github上clone了一份. 这期间IDEA一直是开的,所以重命名时,项目会被自动删除,clone后又出现了. 但是这时IDEA已经无法认识这个clone下来的项目是Maven项目. 于是蛋疼的一幕出现了.

Hello IDEA

2015-07-16
阅读 7 分钟
3.6k
Scala-SBT 首先安装scala插件. 在13+版本中已经默认有SBT插件. 新建一个Project, 选择基于SBT的Scala项目方式创建 下一步选择JDK和SBT, Scala的版本. 点击Finish, 会生成如下图的代码结构图: 其中 build.sbt文件类似maven的pom.xml 在src/main下会创建java, resources, scala三个Sources Root 新建scala object. (或者新...

Apache Drill源码分析(5)--Debug LogicalPlan

2015-07-14
阅读 12 分钟
4.2k
在前面说过, Calcite的SQL节点转换为Drill的DrillRel节点,在DefaultSqlHandler.convertToDrel会包装上一个Screen: DrillScreenRel

Apache Drill源码分析(4)--fragments

2015-07-13
阅读 27 分钟
3.8k
在查询一节中说过: 有了物理计划,所有的统计信息,最优端点,Foreman中的Parallellizer会将物理计划转换为多个fragments 将物理计划转换为fragments是在Foreman中, 就是在runPhysicalPlan的第一步getQueryWorkUnit中

Apache Drill源码分析(3)--DrilBit以及物理计划

2015-07-13
阅读 23 分钟
7.6k
UserServer处理RUN_QUERY_VALUE客户端的查询请求,会将任务分派给UserWorker处理, 由worker提交工作: 显然worker要在构造UserServer的时候也一起构造出来, 这样在收到任务的时候, 确保立即有工人接手这份工作. UserServer的构造在ServiceEngine,而服务引擎是由DrillBit创建的. UserWorker是由WorkerManager管理的, 而Work...

Apache Drill源码分析(2) 分析一次具体的查询过程以及RPC

2015-07-12
阅读 21 分钟
4.9k
Foreman线程的run方法中的queryRequest是org.apache.drill.exec.proto.UserProtos的RunQuery 可以认为就是用户输入的查询语句,只不过由于是分布式,客户端输入的查询,会通过RPC在Foreman上执行 protobuffer文件的定义在drill-protocol/src/main/protobuf下,比如User.proto对应了UserProtos

Apache Drill 源码分析1--准备工作,逻辑计划,物理计划

2015-07-11
阅读 25 分钟
9k
layout: post Drill源码阅读(1) : 环境准备和查看日志 准备工作 修改logback.xml的日志级别为debug {代码...} 使用单机模式,而不是集群模式. 启动drill-embedded 除了在上面的drill-embedded观察输出, 还要观察log目录下的sqlline.log文件 {代码...} 可以看到命令行执行drill-embedded, 会连接到本地的Drill Server上. ...

Apache Spark 入门 (DataFrame+Hive+SparkSQL)

2015-07-03
阅读 22 分钟
17.9k
layout: post [链接] 0f41ff82e270667d9fadbc467533cee31 | Spark Shell ➜ spark-1.4.0-bin-hadoop2.6 ./bin/spark-shell {代码...} Basic RDD Operation 第一个例子: 统计一个文本文件的单词数量.调用sc的textFile(fileName)会生成一个MapPartitionsRDD {代码...} 调用上面生成的textFile RDD的count()会触发一个Action...

VirtualBox安装RHEL6.5/CentOS7.0

2015-07-02
阅读 9 分钟
6.8k
1) 新建虚拟机,名字随便起,选择Linux>RedHat-64bit, 默认内存512M,硬盘大小8GB 针对主机有12G的内存,500G的硬盘, 建议虚拟机内存4G, 硬盘大小50G 2) 创建完虚拟机后,会在左侧菜单树上看到新创建的虚拟机 3) 选择"存储"→"控制器:IDE",添加一个虚拟光驱,选择主机上的rhel.iso文件 4) 选中虚拟机,点击设置,选择"网络"。...

Apache Drill

2015-06-17
阅读 19 分钟
8.8k
单机模式 {代码...} drill使用zookeeper进行集群. 其中local表示使用本机的zk. 也可以使用sqlline启动: {代码...} 退出drill的方式: {代码...} 使用后台进程的方式启动: {代码...} 查看drill进程 {代码...} 第一个是drillbit的后台进程, 第二个是使用sqlline或者dril-embbed启动的客户端进程 Storage Plugin cp是classpa...

Storm源码阅读总结(1) -- Client Nimbus Supervisor

2015-04-16
阅读 7 分钟
5.8k
App通过StormSubmitter提交计算拓扑作业submitTopology: 首先提交jar包, 会向Nimbus服务器发起beginFileUpload, 申请到要上传的路径后, 调用uploadChunk开始将jar包上传到nimbus服务器 文件传输完毕, 调用finishFileUpload结束上传jar包过程. 最后会调用NimbusClient的submitTopology

Storm源码分析--Nimbus-data

2015-04-14
阅读 36 分钟
4k
上面调用的是TimeCacheMap的第二个构造函数: storm-core/backtype/storm/utils/TimeCacheMap.java

Storm源码分析--Nimbus启动过程

2015-04-14
阅读 14 分钟
6.7k
Nimbus server, 首先从启动命令开始, 同样是使用storm命令"storm nimbus”来启动 看下源码, 此处和上面client不同, jvmtype="-server", 最终调用"backtype.storm.daemon.nimbus"的main nimbus是用clojure实现的, 但是clojure是基于JVM的, 所以在最终发布的时候会产生nimbus.class, 所以在用户使用的时候完全可以不知道clo...

Storm源码分析--Topology Submit Client

2015-04-14
阅读 15 分钟
4.3k
这个storm命令是用python实现的, 看看其中的jar函数, 很简单, 调用exec_storm_class, 其中jvmtype="-client" 而exec_storm_class其实就是拼出一条java执行命令, 然后用os.system(command)去执行, 为何用Python写, 简单? 可以直接使用storm命令? 这儿的klass就是topology类, 所以java命令只是调用Topology类的main函数 /b...