1.认识大数据
1.1、什么是大数据
volume(数据量大):GB-TB-PB-ZB—差别1024倍,数据呈现指数级别增长。
velocity(速度快):数据处理速度快,数据增长速度快—第一代MR、第二代Hive、第三代lmpala和Spark、第四代Flink。
variety(数据种类多):结构化、半结构化、非结构化—非结构化的图像、文本,半结构化的Json及XML。
Value(价值密度低):对数据进行价值化提取—在大数据基础上对数据进行价值化提取。
1.2、大数据分析应用场景
2.任务调度相关概念
2.1、什么是任务调度
2.1.1、任务调度:实现执行程序的、规范化、自动化、可视化、集中化、统一调度和监控,让所有任务有序、高效运行,降低开发和运维成本。
2.1.2、分布式任务调度:任务的分布式处理,多台服务器同时处理任务的调度和监控,体现分布式思想特点:主从节点、容错、负载均衡、高可用。
2.2、任务调度应用场景
2.2.1、流行且开源的分布式任务调度框架。
2.2.2、国内开源的分布式任务调度框架。
2.2.3、国内国外非开源的分布式任务调度框架产品。
2.2.4、任务调度关键词
WorkFlow:工作流
工作流:业务过程的部分或整体在计算机应用环境下的自动化。
目的:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息活着任务。
Coordinator:协调器
协调器:组织多个job。
Bundle:批处理
批处理:管理多个Coordinator。
3.初始airflow
3.1、airflow任务调度相关概念
3.1.1、初始airflow
Airflow是一款用编程方式,编写、安排、监控工作流的任务调度工具
原生语言为python
3.1.2、Airflow任务动态图
3.1.3、Airflow基础架构
Airflow基础体系结构应用与开发程序,有多种方式执行程序。
元数据数据库:Airflow使用SQL数据库存储有关正在运行的数据管道的元数据。再上图中,它表示为Postgres,它在airflow中非常流行。airflow支持的备用数据库包括mysql。
Web服务器和调度程序:airflow web服务器和调度程序是在本地计算机上运行并与原数据库进行交互的独立进程。
执行器:单独显示,实际上executor不是一个单独的过程,而是scheduler中运行。
工作节点:单独流程,与airflow体系结构的其他组结和元数据存储库进行交互。
airflow.cfg:是airflow配置文件,可通过web server,scheduler和workers访问。
DAG:是指包含python代码的DAG文件,代表要由airflow运行的数据管道。这些文件的位置在airflow配置文件中指定,但是web服务器,调度程序和工作程序需要访问他们。
4.airflow初体验
4.1、如何进行airflow任务调度
4.1.1、airflow调度shell任务实现
from datetime import tiimedelta
from airflow import DAG
from airflow.operatros.bash import BashOperator
from airflow.utils.dates import days_ago
args = {
'owner':'airflow',
'email':['itcast@itcast.cn'],
'email_on_failure':True,
'email_on_retry':True,
'retries':1,
'retry_detay':timedelta(minutes=5)
}
dag = DAG(
DAG_id='first_bash_operator_new',
default_args=args,
start_date=days_ago(2