测试目标

azkaban多executor下flow的分配方式

azkaban可以同时执行的flow\job个数

azkaban单个job最小使用的内存

相关配置

executor最大线程数: executor.maxThreads=50

executor同时执行的flow最大数 executor.flow.threads =30

executor每个flow最多同时执行的job数 flow.num.job.threads =10

测试

1.azkaban多executor下flow的分配方式

a.先启动flow20end_noop,该flow包含20个job



发最多只有10个job在执行.

查看主机上执行的任务情况:

[root@bqbpdevs2 conf]# ps -ef|grep "sleep 300" |grep -v grep -c
10
[root@bqbpdevs3 ~]# ps -ef|grep "sleep 300" |grep -v grep -c
0

发现先启动flow20end_noop只在节点2上运行,节点3上没有运行.

b.再启动一个任务flow30end_noop,该flow包含30个job

[root@bqbpdevs2 conf]# ps -ef|grep "sleep 300" |grep -v grep -c
10 ##flow20end_noop的10个任务
[root@bqbpdevs3 ~]# ps -ef|grep "sleep 300" |grep -v grep -c
10

发现flow30end_noop只在节点3上面运行,

c.再启动一个任务flow40end_noop

[root@bqbpdevs2 conf]# ps -ef|grep "sleep 300" |grep -v grep -c
10
[root@bqbpdevs3 ~]# ps -ef|grep "sleep 300" |grep -v grep -c
20

发现flow40end_noop只在节点3上启动.

以上测试说明,azkaban每个flow只会分配在一个节点上

2.azkaban可以同时执行的flow\job个数

a.最大支持的flow数



同时起了38个flow.

说明executor.flow.threads这个参数是针对每个executor的而是不azkaban集群

b.测试azkban job最大并行度

[root@bqbpdevs2 conf]# ps -ef|grep "sleep 300" |grep -v grep -c
0
[root@bqbpdevs3 ~]# ps -ef|grep "sleep 300" |grep -v grep -c
101

启动了11个flow,这些flow刚好全启动在了节点3上.同时执行了101个job.

说明executor.maxThreads=50不能控制每个节点上job的并行数.

3.azkaban单个job最小使用的内存

找到一个执行中的进程,查看内存:



每个sleep 命令大概用了620字节,并且系统中无其它azkaban进程(server除外)

说明azkaban在提交任务后会退出,所使用的内存由程序决定

总结

1.azkaban的每个flow中会分配到一个节点上执行

2.每个flow中同时执行的job数由flow.num.job.threads决定

3.参数executor.maxThreads=50在job运行时无效,应该是提交任务的线程数

4.每个节点能执行的最大job数= executor.flow.threads * flow.num.job.threads

5.azkaban提交任务后线程会退出,不占用内存.

3.azkaban3.0测试的更多相关文章

  1. AC6102开发板USB3.0测试和使用说明

    AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲, ...

  2. android开发者博客二月Android Studio2.0测试

    参考网页-http://android-developers.blogspot.com/2016/02/android-studio-20-beta.html Android Studio 2.0-B ...

  3. Python开发环境Wing IDE 5.0测试第八版发布

    Wing IDE是著名的Python开发工具,是Wingware公司的主要产品.从1999年起,Wingware公司便开始专注于Python开发设计.Wing IDE在十几年的发展中,不管完善.其强大 ...

  4. jmeter4.0测试dubbo接口遇到的问题:An error occurred: org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    半年前,用jmeter4.0测试dubbo接口的时候,遇到这样一个问题 An error occurred: org.springframework.scheduling.quartz.CronTri ...

  5. Uiautomator1.0与Uiautomator2.0测试项目搭建与运行原理

    Uiautomator是Android原生测试框架,可以用于白盒接口测试也可以用于UI自动化测试,Uiautomator分1.0版本与2.0版本,它们都是基于UiAutomation的测试框架,都是通 ...

  6. Hadoop 学习笔记 (八) hadoop2.2.0 测试环境部署 及两种启动方式

    1基本流程步骤1:准备硬件(linux操作系统)步骤2:准备软件安装包,并安装基础软件(主要是JDK)步骤3:修改配置文件步骤4:分发hadoop步骤5:启动服务步骤6:验证是否启动成功!2硬件配置要 ...

  7. 2.azkaban3.0安装

    安装规划安装azkban1.安装配置数据库2.下载安装web server3.安装mulit executor4.安装azkaban插件AZKABAN参数安装出现的问题 安装规划 IP 角色 端口 1 ...

  8. USB3.0测试和使用说明

    概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲,功能强大,接口简单,非常适合用于各种需要高速数 ...

  9. ubuntu 14.04 安装opencv 3.0 测试

    安装opencv 前面步骤参考 http://my.oschina.net/u/1757926/blog/293976 主要修改测试代码 1. 先从sourceforge上下载OpenCV的源码 2. ...

随机推荐

  1. 更新UI放在主线程的原因

    1.在子线程中是不能进行UI 更新的,而可以立刻更新的原因是:子线程代码执行完毕了,又自动进入到了主线程,这中间的时间非常的短,让我们误以为子线程可以更新UI.如果子线程一直在运行,则无法更新UI,因 ...

  2. Spring知识点小结(三)

    一.aop的简介 aop:面向切面编程    aop是一种思想,面向切面编程思想,Spring内部提供了组件对aop进行实现    aop是在运行期间使用动态代理技术实现的思想    aop是oop延 ...

  3. input 输入的一些限制说明

    input输入框 只能输入 数字可以有小数点 <input class="form_text" id="purchasePrice" name=" ...

  4. 07.安装及使用gitlub

    博客为日常工作学习积累总结: 1.安装gitlub sudo yum install -y curl policycoreutils-python openssh-server openssh-cli ...

  5. (七)json序列化

    在spring boot项目中已经包含有json序列化的框架,具体在包com.fasterxml.jackson.annotation中,建议看看详细源码. 但在项目应用上还是会有一些坑会出现的,举个 ...

  6. php函数strtotime结合date时间修饰语的使用

    下面简单介绍在项目开发中date时间函数和strtotime所遇到的问题,以及解决办法. 原文地址:小时刻个人技术博客 > http://small.aiweimeng.top/index.ph ...

  7. 3.1 wifi网卡RT3070在S3C2440的移植和使用

    学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...

  8. matlab读取txt文本

    textread函数 原文:http://blog.sina.com.cn/s/blog_618af1950100k926.html 文档:https://ww2.mathworks.cn/help/ ...

  9. go学习笔记-反射(Reflection)

    反射(Reflection) 反射是利用reflect包实现的 反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地 反射使用TypeOf和ValueOf函数从接口中获取目标对象信息 ...

  10. vue生命周期和react生命周期对比

    一 vue的生命周期如下图所示(很清晰)初始化.编译.更新.销毁 二 vue生命周期的栗子 注意触发vue的created事件以后,this便指向vue实例,这点很重要 <!DOCTYPE ht ...