- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 数据结构(五)位图算法
位图算法实现思想: 将需要排序的数字转换为数组的下标,通过数组的下标完成对数据的排序,优点效率高,缺点浪费存储空间。 1 public class BitMapTest { 2 /** 3
2016-11-15 10:07:27
620
原创 Spark系列(十)TaskSchedule工作原理
工作原理图 源码分析: 1、submitTasks 在submitTasks方法中最后调用backend.reviveOffers()进行下一步的task调度分配 1 override def submitTasks(taskSet: TaskSet) { 2
2016-11-15 10:07:18
718
原创 Spark系列(九)DAGScheduler工作原理
以wordcount为示例进行深入分析 1 object wordcount { 2 3 def main(args: Array[String]) {
2016-11-15 10:07:10
426
原创 Spark系列(八)Worker工作原理
工作原理图 源代码分析 包名:org.apache.spark.deploy.worker 启动driver入口点:registerWithMaster方法中的case LaunchDriver 1 case LaunchDriver(driverId, driverDesc) => {
2016-11-15 10:07:03
487
原创 Spark系列(七)Master中的资源调度
资源调度 说明: Application的调度算法有两种,分别为spreadOutApps和非spreadOutApps spreadOutApps 在spark-submit脚本中,可以指定要多少个executor,executor需要多少个cpu及多少内存,基于该机制,最后executor的实际数量,以及每个executor的cpu可能与配置是不一样的。 因为spr
2016-11-15 10:06:55
587
原创 Spark系列(六)Master注册机制和状态改变机制
各组件的注册流程如下图: 注册机制源码说明: 入口:org.apache.spark.deploy.master文件下的receiveWithLogging方法中的case RegisterApplication(注册Application)、case RegisterWorker(注册Worker)、case RequestSubmitDriver(注册Driver). 状态改变机制
2016-11-15 10:06:49
404
原创 数据结构(四)常用排序算法-选择、插入、希尔
选择排序 实现思路: 1、将需排序的集合设为A,已经排好顺的集合为B(在未排序前B集合为空)。 2、每次从A集合中查找出最大或者最小的元素后放入集合B中 3、同时将该元素从集合A中移除. 4、循环执行以上两步直到集合A为空,B集合中的元素就有序了. 缺点: 效率低,时间复杂度为 O(n*n),是一种只适合小数据集的原地排序算法。 示范代码
2016-11-15 10:06:44
448
原创 Spark系列(五)Master主备切换机制
Spark Master主备切换主要有两种机制,之中是基于文件系统,一种是基于Zookeeper.基于文件系统的主备切换机制需要在Active Master挂掉后手动切换到Standby Master上,而基于Zookeeper的主备切换机制可以实现自动切换Master。 切换流程图 流程说明: Standby Master模式 1. 使用持久化引擎读取持久化的storeApps
2016-11-15 10:06:36
1147
原创 数据结构(三)实现AVL树
AVL树的定义 一种自平衡二叉查找树,中面向内存的数据结构。 二叉搜索树T为AVL树的满足条件为: T是空树 T若不是空树,则TL、TR都是AVL树,且|HL-HR| 说明 AVL树的实现类为AVLTree继承自前篇中的二叉搜索树BTreeSort ,AVL树的节点类为AVLNode继承自二叉树节点类BTreeNode。 实现代码 AVL树节点定义
2016-11-15 10:06:30
404
原创 Spark系列(四)整体架构分析
架构流程图 说明 Driver端流程说明(Standalone模式) 使用spark-submit提交Spark应用程序Application. 通过反射的方式创建和构造一个DriverActor进程(Driver进程). SparkContext初始化,构造DAGScheduler和TaskScheduler. 每执行到一个Action操作就会创建一个job
2016-11-15 10:06:21
453
原创 数据结构(二)二叉搜索树-非递归实现遍历
说明:公用代码在上篇数据结构中,以下定义的方法都属于BTreeSort类的成员方法。 先序遍历 1 // 非递归先序遍历 -- 访问顺序先自己(中间)再左最后右 2 public void preTraversalStack(BTreeNode roo
2016-11-15 10:06:15
335
原创 数据结构(一)二叉搜索树-递归实现
二叉搜索树(BinarySearchTree)的定义 T是一颗空树 如果TL不为空,则TL.key 如果TR不为空,则有TR.key >= root.key TL、TR同时也是一颗二叉搜索树 TL、TR分别代表左右子树,root代表根,key是关键字 实现代码 1
2016-11-15 10:06:07
545
原创 Spark系列(三)SparkContext分析
SparkContext初始化流程图 其它说明: 在createTaskScheduler会根据不同的提交模式创建backend对象(如本地模式为LocalBackend)。 在SparkDeploySchedulerBackend中构造ApplicationDescription对象appDesc,该对象描述了Application最大需要多少CPU core,每个slave
2016-11-15 10:06:01
497
原创 Docker系列(九)Kubernetes安装
环境: A、B两天机器A机器IP:192.169.0.104,B机器IP:192.168.0.102,其中A为Master节点,B为Slave节点 操作系统:Centos7 Master与Slave节点相同配置 增加主机名与IP的映射 vim /etc/hosts,添加以下配置: 192.168.0.104 master 192.168
2016-11-15 10:05:53
1376
原创 Docker系列(八)Kubernetes介绍
Kubernetes组件功能图 各组件说明: 节点 节点在Kubernetes由虚拟机或者实体机表示,常称为Minion,即从属主机。当一个节点加入到Kubernetes系统中时,它将会创建一个数据结构来记录节点信息(元数据),且不是所有节点都能够加入到Kubernetes系统中,只有通过验证后的节点才能够成为Kubernetes阶段。目前管理节点有两种方式分别为:节点管理器(Node
2016-11-15 10:05:49
691
原创 Docker系列(七)Shipyard安装及介绍
Shipyard 是一个基于 Web 的 Docker 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等。 环境配置 两台虚拟机IP分别为:192.168.0.104(主节点)、192.168.0.105(从节点) 操作系统:Cento
2016-11-15 10:05:40
729
原创 Docker系列(六)路由打通网络示例
运行环境 两台虚拟机IP分别为:192.168.0.103(简称:A主机)、192.168.0.104(简称:B主机) 操作系统:Centos 7 Docker版本:1.8 Mysql镜像配置 1、在A、B两个主机中下载镜像mysql:docker pull mysql 2、在A主机中创建容器test1 (docker create –name=test1 –it
2016-11-15 10:05:36
1668
原创 Esper系列(十四)Contained-Event Selection
功能:该语法是针对所查询事件中的属性又是另一种属性的查询结果控制。 格式: 1 [select select_expressions from] 2 contained_expression [@type(eventtype_name)] [as alias_n
2016-11-15 10:05:29
390
原创 Esper系列(十三)Splitting and Duplicating Streams
功能:将同一个事件流分发到其它的事件流中。 格式: 1 [context context_name] 2 on event_type[(filter_criteria)] [as stream_name] 3
2016-11-15 10:05:25
412
原创 Esper系列(十二)Variables and Constants
功能:变量和常量的定义及应用。 EPL配置创建 1 // 方式一EPAdministrator之后再设置变量及常量 2 EPServiceProvider epService = EPServiceProviderManager.getDefaultProvide
2016-11-15 10:05:19
354
原创 Esper系列(十一)NamedWindow语法Merge、Queries、Indexing、Dropping
On-Merge With Named Windows 功能:对window中的insert、update、delete操作进行组合运用。 格式: 1 on event_type[(filter_criteria)] [as stream_name] 2 merge
2016-11-15 10:05:11
427
原创 Esper系列(十)NamedWindow语法delete、Select+Delete、Update
On-Delete With Named Windows 功能:在Named Windows中删除事件. 格式: 1 on event_type[(filter_criteria)] [as stream_name] 2 delete from window_or_
2016-11-15 10:05:07
553
原创 Esper系列(九)NamedWindow语法create、Insert、select
功能:用于存储一种或多种类型的事件的集合,并能对所存储的事件进行增删改查操作. CreateNameWindow 根据已有的数据源构造 格式: 1 [context context_name] 2 create window window_n
2016-11-15 10:05:00
454
原创 Esper系列(八)Method Definition、Schema
Method Definition 作用:以公共静态方法的方式去访问外部数据。 应用说明: 1、返回数据的方法必须是公共静态方法(方法参数可以有多个也可以没有); 2、如果返回一条数据或无返回数据,则方法的返回类型可以是Java类或者Map类型数据。如果返回多条数据(包括一条),则方法返回类型必须是Java类的数组或者Map数组; 3、如果方法的返回类型是
2016-11-15 10:04:54
450
原创 Docker系列(五)OVS+Docker网络打通示例
环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1 # From http://goldmann.pl/blog/2014/01/21/connecting-docker-containers-on-multiple-hosts/
2016-11-15 10:04:48
671
原创 Esper系列(七)数据缓存、外部事件应用(静态方法)
LRU Cache 功能:最近最少使用策略。 数据库查询缓存应用配置: 1 database-reference name="mydb"> 2 ... configure data source or driver manager settings...
2016-11-15 10:04:42
637
原创 Esper系列(六)子查询、Exists、In/not in、Any/Some、Join
子查询 1 // 子查询结果为外事件属性 2 String epsql = "select (select name from orderEvent.std:lastevent()) as result from orderEvent ";
2016-11-15 10:04:36
508
原创 Esper系列(五)Order by、Limit、构建事件流、Updating an Insert Stream
Order by 与SQL语法类似类似,默认为升序排列; 注意: 如果order by的子句中出现了聚合函数,那么该聚合函数必须出现在select的子句中。 出现在select中的expression或者在select中定义的expression,在order by中也有效。 如果order by所在的句子没有join或者没有group by,则排序结果幂等,
2016-11-15 10:04:27
464
原创 Storm系列(二十)分区事务PartitionTransaction及示例
在Storm中分区事务的处理,Spout端需要实现IPartitionedTransactionalSpout接口,用于对批次及偏移量的控制,而Bolt都必须实现IBatchBolt接口,通常继承至BaseTransactionalBolt抽象类。 API详解 Spout端 IPartitionedTransactionalSpout接口 1
2016-11-15 10:04:18
772
原创 Storm系列(十九)普通事务ITransactionalSpout及示例
普通事务API详解 1 public interface ITransactionalSpoutT> extends IComponent { 2 public interface CoordinatorX> { 3
2016-11-15 10:04:12
557
原创 Storm系列(十八)事务介绍
功能:将多个tuple组合成为一个批次,并保障每个批次的tuple被且仅被处理一次。 storm事务处理中,把一个批次的tuple的处理分为两个阶段processing和commit阶段。 processing阶段运行多个批次的tuple并行处理。 commit阶段各批次之间需强制按照顺序进行提交。 事务Topologies 在Transactional Topol
2016-11-15 10:04:06
384
原创 Storm系列(十七)DRPC介绍
Storm版本0.9.5 在storm中DRPC服务应用于远程分布式计算,根据客户端提交的请求参数,而返回Storm计算的结果。 DRPC服务启动流程(远程模式) 启动DRPC服务,启动命令:storm drpc 修改storm.yaml配置文件,添加drpc.servers,如: drpc.servers: - "mast" 向sto
2016-11-15 10:04:00
1026
原创 Docker系列(四)Dockerfile
基本语法 使用 #来注释 FROM 指令告诉Docker使用哪个镜像作为基础 接着是维护者信息 RUN 开头的指令会在创建中运行,比如安装软件包 FROM 格式: FROM或FROM: 说明:第一条指令必须为FROM指令,如果在同一个Dockerfile文件中创建多个镜像时,可以使用多个FROM指令(每个镜像一次). MAINTAINER 格式: M
2016-11-15 10:03:53
264
原创 Docker系列(三)常用命令
命令说明 docker pull 格式: docke pull [OPTIONS] NAME[:TAG] 作用:下载名称为 name 的镜像 例子: sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04 说明: 从 dl.dockerpool.com:5000 中下载TAG值为12.04的ub
2016-11-15 10:03:50
289
原创 Esper系列(四)Output
功能 控制Esper事件流计算结果的输入形式、时间点及频率; 格式 1 output [after suppression_def] 2 [[all | first | last | snapshot] every output_rate [seconds |
2016-11-15 10:03:43
520
原创 Docker系列(二)组件介绍
镜像 镜像是一个只读的模版,可以用来创建Docker容器。 容器 Docker利用容器来运行应用,容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序. 仓库 集中存放镜像文件的地方,
2016-11-15 10:03:37
348
原创 Esper系列(三)Context和Group by
Context 把不同的事件按照框的规则框起来(规则框在partition by中定义),并且有可能有多个框,而框与框之间不会互相影响。 功能: 组合事件查询并进行分组,类型:Hash Context、Category Context、Non-Overlapping Context。 格式: 1 create cont
2016-11-15 10:03:31
538
原创 Docker系列(一)安装
操作系统版本:Centos7 Docker版本:1.8 设置安装源 1 cat > /etc/yum.repos.d/docker.repo -EOF 2 [dockerrepo] 3 nam
2016-11-15 10:03:25
411
原创 Storm系列(十六)架构分析之Executor-Bolt
准备消息循环的数据 函数原型: 1 let[executor-sampler (mk-stats-sampler (:storm-conf executor-data))] 主要功能: 定义tuple-action-fn函数,该函数会根据TaskId获得对应的Bolt对象并调用其executor方法.
2016-11-15 10:03:19
529
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人