Hive大数据任务调度和业务介绍

news2024/12/28 5:04:56

目录

一、Zookeeper

1.zookeeper介绍

2.数据模型

3.操作使用

4.运行机制

5.一致性

二、Dolphinscheduler

1.Dolphinscheduler介绍

架构

2.架构说明

该服务内主要包含:

该服务包含:

3.FinalShell主虚拟机启动服务

4.Web网页登录

5.使用

5-1 安全中心

创建队列

添加租户

5-2 项目管理

I-创建项目

II-工作流定义

5-3 数据中心

5-4 资源中心

5-5 监控中心

6.指标分类介绍


一、Zookeeper

1.zookeeper介绍

ZooKeeper是一个具有高可用性的高性能分布式协调服务,主要解决单点故障问题,实现服务的高可用。

官网 ZooKeeper: Because Coordinating Distributed Systems is a Zoo

2.数据模型

zk可存储小文件数据,用来保存其他服务的信息,比如保存hdfs的namenode信息,ds的运行信息

ZooKeeper 维护着一个树形层次结构,树中的节点被称为 znode。znode 可以用于存储数据,并且有一个与之相关联的 ACL。ZooKeeper 被设计用来实现协调服务(这类服务通常使用小数据文件),而不是用于大容量数据存储,因此一个 znode 能存储的数据被限制在1MB以内

3.操作使用

1-登录客户端

/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p0.1425774/lib/zookeeper/bin/zkCli.sh

查看根节点下子节点有哪些

创建新的节点并指定数据

create 节点名(从根节点开始)  数据

查看节点内的数据

get 节点名

删除节点及数据

4.运行机制

第一阶段 启动服务,进行领导者选举

所有机器通过一个选择过程来选出一台被称为领导者(leader)的机器,其他的机器被称为跟随者(follower)。一旦半数以上(或指定数量)的跟随者已经将其状态与领导者同步,则表明这个阶段已经完成。

第二阶段 原子广播进行数据读写

所有的写请求都会被转发给领导者,再由领导者将更新广播给跟随者。当半数以上的跟随者已经将修改持久化之后,领导者才会提交这个更新,然后客户端才会收到一个更新成功的响应。这个用来达成共识的协议被设计成具有原子性,因此每个修改要么成功要么失败。

如果领导者出现故障,其余的机器会选出另外一个领导者,并和新的领导者一起继续提供服务。随后,如果之前的领导者恢复正常,会成为一个跟随者。领导者选举的过程是非常快的。

5.一致性

一个跟随者可能滞后于领导者几个更新。这也表明在一个修改被提交之前,只需要集合中半数以上机器已经将该修改持久化则认为更新完成。

对 ZooKeeper 来说,理想的情况就是将客户端都连接到与领导者状态一致的服务器上。

zk能保证数据的最终一致性(要么全部成功,要么全部失败)。

二、Dolphinscheduler

1.Dolphinscheduler介绍

官网 https://dolphinscheduler.apache.org/zh-cn

Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

架构

2.架构说明

  • MasterServer

    MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。 MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。 MasterServer基于netty提供监听服务。

    该服务内主要包含:
    • DistributedQuartz分布式调度组件,主要负责定时任务的启停操作,当quartz调起任务后,Master内部会有线程池具体负责处理任务的后续操作;

    • MasterSchedulerService是一个扫描线程,定时扫描数据库中的t_ds_command表,根据不同的命令类型进行不同的业务操作;

    • WorkflowExecuteRunnable主要是负责DAG任务切分、任务提交监控、各种不同事件类型的逻辑处理;

    • TaskExecuteRunnable主要负责任务的处理和持久化,并生成任务事件提交到工作流的事件队列;

    • EventExecuteService主要负责工作流实例的事件队列的轮询;

    • StateWheelExecuteThread主要负责工作流和任务超时、任务重试、任务依赖的轮询,并生成对应的工作流或任务事件提交到工作流的事件队列;

    • FailoverExecuteThread主要负责Master容错和Worker容错的相关逻辑;

  • WorkerServer

    WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。 WorkerServer服务启动时向Zookeeper注册临时节点,并维持心跳。 WorkerServer基于netty提供监听服务。

    该服务包含:
    • WorkerManagerThread主要负责任务队列的提交,不断从任务队列中领取任务,提交到线程池处理;

    • TaskExecuteThread主要负责任务执行的流程,根据不同的任务类型进行任务的实际处理;

    • RetryReportTaskStatusThread主要负责定时轮询向Master汇报任务的状态,直到Master回复状态的ack,避免任务状态丢失;

  • ZooKeeper

    ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。另外系统还基于ZooKeeper进行事件监听和分布式锁。 我们也曾经基于Redis实现过队列,不过我们希望DolphinScheduler依赖到的组件尽量地少,所以最后还是去掉了Redis实现。

  • AlertServer

    提供告警服务,通过告警插件的方式实现丰富的告警手段。

  • ApiServer接口

    API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。

  • UI

    系统的前端页面,提供系统的各种可视化操作界面。

3.FinalShell主虚拟机启动服务

# 启动
sh /export/server/dolphinscheduler/bin/start-all.sh
# 停止
sh /export/server/dolphinscheduler/bin/stop-all.sh

4.Web网页登录

http://192.168.88.80:12345/dolphinscheduler/ui/view/login/index.html
账号:admin
密码:dolphinscheduler123

5.使用

5-1 安全中心
创建队列
  • 队列是在执行 spark、mapreduce 等程序,需要用到“队列”参数时使用的。

  • 管理员进入安全中心 -> 队列管理页面,点击“创建队列”按钮,创建队列。

注意:目前仅有 admin 用户可以修改队列。

添加租户
  • 租户对应的是 Linux 的用户,用于 worker 提交作业所使用的用户。如果 linux 没有这个用户,则会导致任务运行失败。你可以通过修改 worker.properties 配置文件中参数 worker.tenant.auto.create=true 实现当 linux 用户不存在时自动创建该用户。worker.tenant.auto.create=true 参数会要求 worker 可以免密运行 sudo 命令

  • 租户编码:租户编码是 Linux上 的用户,唯一,不能重复

  • 管理员进入安全中心->租户管理页面,点击“创建租户”按钮,创建租户。

注意:目前仅有 admin 用户可以修改租户。

5-2 项目管理
I-创建项目

II-工作流定义

进入项目

定义

定义任务1

定义任务2

控制任务执行顺序

保存工作流

上线任务

执行任务

工作流执行实例

查看任务

查看任务日志

5-3 数据中心

数据源中心可以配置各种数据源,包括MySQL/PostgreSQL/Hive/Spark/ClickHouse/Oracle/

SQLServer/DB2等。配置数据源后,在使用SQL类型的任务时,选用不同数据源,就可以直接使用相应类型的SQL了。

这里,配置hive-dws:

创建工作流

注意:如果是查询语句需要配置邮箱服务,当前ds未配置邮箱服务,所以无法执行查询语句

需要公司向第三方邮箱服务器公司申请或者公司自建邮箱服务

非查询语句

create table dim.tb_test(id int,name string)

5-4 资源中心

将编写好的代码文件资源交给ds进行保存,定义任务时直接执行文件

定义工作流使用

5-5 监控中心

主要是对系统中的各个服务的健康状况和基本信息的监控和显示

6.指标分类介绍

指标就是最终要计算的数据内容。

指标主要有以下分类: (1)原子指标:

原子指标基于某一业务过程的度量值,是业务定义中不可再 拆解的指标,原子指标的核心功能就是对指标的聚合逻辑进行了 定义。比如 销售额 销量。

(2)派生指标:

派生指标基于原子指标,在原子指标的基础上加了各种限 定。比如 每月销售额 每月每个店铺的销售额。

(3)衍生指标:

衍生指标是在一个或多个派生指标的基础上,通过各种逻辑 运算复合而成的。比如 每月销售的环比增长,每个品类销售额占 比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1643451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[入门] Unity Shader前置知识(5) —— 向量的运算

在Unity中,向量无处不在,我想很多人都使用过向量类的内置方法 normalized() 吧,我们都知道该方法是将其向量归一化从而作为一个方向与速度相乘,以达到角色朝任一方向移动时速度都相等的效果,但内部具体是如何将该向量进…

【计算机科学速成课】笔记二

笔记一 文章目录 7.CPU阶段一:取指令阶段阶段二:解码阶段阶段三:执行阶段 8.指令和程序9.高级CPU设计——流水线与缓存 7.CPU CPU也叫中央处理器,下面我们要用ALU(输入二进制,会执行计算)、两种…

STM32之HAL开发——ADC入门介绍

ADC简介 模数转换,即Analog-to-Digital Converter,常称ADC,是指将连续变量的模拟信号转换为离散的数字信号的器件,比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101,这样ADC就建立了模拟世界的传感器和…

C++异常处理实现(libstdc++)

摘要:为了更好的理解C中异常处理的实现,本文简单描述了Itanium ABI中异常处理的流程和llvm/libsdc简要实现。 关键字:C,exception,llvm,clang C他提供了异常处理机制来对程序中的错误进行处理,避免在一些异常情况下无法恢复现场而…

Android C++ 开发调试 LLDB 工具的使用

文章目录 调试环境准备基础命令Breakpoint CommandsWatchpoint CommandsExamining VariablesEvaluating ExpressionsExamining Thread StateExecutable and Shared Library Query Commands 参考: Android 中在进行 NDK 开发的时候,我们经常需要进行 C 代…

漏洞挖掘之某厂商OAuth2.0认证缺陷

0x00 前言 文章中的项目地址统一修改为: a.test.com 保护厂商也保护自己 0x01 OAuth2.0 经常出现的地方 1:网站登录处 2:社交帐号绑定处 0x02 某厂商绑定微博请求包 0x02.1 请求包1: Request: GET https://www.a.test.com/users/auth/weibo?…

88、动态规划-乘积最大子数组

思路: 首先使用递归来解,从0开始到N,每次都从index开始到N的求出最大值。然后再次递归index1到N的最大值,再求max。代码如下: // 方法一:使用递归方式找出最大乘积public static int maxProduct(int[] num…

局部性原理和磁盘预读

局部性原理 磁盘预读 \

Linux---软硬链接

软链接 我们先学习一下怎样创建软链接文件,指令格式为:ln -s 被链接的文件 生成的链接文件名 我们可以这样记忆:ln是link的简称,s是soft的简称。 我们在下面的图片中就是给test文件生成了一个软链接mytest: 我们来解…

【Linux—进程间通信】共享内存的原理、创建及使用

什么是共享内存 共享内存是一种计算机编程中的技术,它允许多个进程访问同一块内存区域,以此作为进程间通信(IPC, Inter-Process Communication)的一种方式。这种方式相对于管道、套接字等通信手段,具有更高的效率&…

【skill】onedrive的烦人问题

Onedrive的迷惑行为 安装Onedrive,如果勾选了同步,会默认把当前用户的数个文件夹(桌面、文档、图片、下载 等等)移动到安装时提示的那个文件夹 查看其中的一个文件的路径: 这样一整,原来的文件收到严重影…

孪生网络、匹配网络和原型网络:详解与区分

孪生网络、匹配网络和原型网络 孪生网络、匹配网络和原型网络:详解与区分孪生网络(Siamese Networks)核心概念工作原理 匹配网络(Matching Networks)核心概念工作原理 原型网络(Prototypical Networks&…

环形链表知识点

目录 判断链表中是否有环快慢指针步数问题 判断链表中是否有环 题目:给你一个链表的头节点 head ,判断链表中是否有环。 解决方法:使用快慢指针 如果两个快慢指针相遇,则有环。 如果没有相遇,则没有环。 但是这个原理…

Linux——守护进程化(独立于用户会话的进程)

目录 前言 一、进程组ID与会话ID 二、setsid() 创建新会话 三、daemon 守护进程 前言 在之前,我们学习过socket编程中的udp通信与tcp通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅&#xff0c…

【LinuxC语言】setitimer与getitimer函数

文章目录 前言一、setitimer() 函数二、getitimer() 函数三、示例代码总结 前言 在Linux系统下,编写程序时经常需要使用定时器来实现一些定时任务、超时处理等功能。setitimer() 和 getitimer() 函数是两个用于操作定时器的重要函数。它们可以帮助我们设置定时器的…

第19章 基于质量特性的测试技术

一、功能性测试 (一)测试方法 等价类边界值法因果图法判定表法场景法 (二)用例 1、正常用例 2、异常用例 (三)完备性 1、功能覆盖率 2、X1-A/B 功能覆盖率X:软件实际功能覆盖文档中所有…

【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解

一、计算机网络的发展背景 1、网络的定义 网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。 (1) 独立模式 独立模式 : 计算机之间相互独立。 (2)…

VMvare如何更改虚拟机内共享文件夹的挂载点

更改虚拟机内共享文件夹的路径 进入目录 /etc/init.d ,并找到vmware-tools文件 里面有配置项 vmhgfs_mnt"/mnt/hgfs" 将引号内的内容更改为你需要挂载的路径,重启即可 注意挂载的路径不能是 “/”,必须根目录下的某个文件夹,或者其子文件夹 …

在线OJ——链表经典例题详解

引言:本篇博客详细讲解了关于链表的三个经典例题,分别是:环形链表(简单),环形链表Ⅱ(中等),随机链表的复制(中等)。当你能毫无压力地听懂和成功地…

面试中算法(使用栈实现队列)

使用栈来模拟一个队列,要求实现队列的两个基本操作:入队、出队。 栈的特点:先入后出,出入元素都是在同一端(栈顶)。 队列的特点:先入先出,出入元素是在两端(队头和队尾)。 分析&…