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

目录

一、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.mzph.cn/news/831971.shtml

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

相关文章

计算机视觉(CV)简介

计算机视觉(CV)技术是一种在计算机中模拟人类视觉和图像处理能力的技术。它可以从图像和视频中提取有用的信息,并进行分析和理解。以下是计算机视觉技术的优势和挑战的一些例子: 优势: 高效处理大量图像数据&#xff…

局域网唤醒平台:UpSnap

简介:UpSnap是一个简单的唤醒局域网网络应用程序。UpSnap为每个用户、每个设备提供了唯一的访问权限。虽然管理员拥有所有权限,但他们可以为用户分配特定的权限,如显示/隐藏设备、访问设备编辑、删除和打开/关闭设备电源。 历史攻略&#xf…

给Ollama套个WebUI,方便使用

Ollama 基本的安装使用参考前文 https://xugaoxiang.com/2024/05/01/ollama-offline-deploy/,前文使用的模型是 llama2,本篇将使用 llama3,因此在启动时,命令是 ollama run llama3。 Ollama Llama3 Llama3 是 Meta 发布的大语言模…

Optional学习记录

Optional出现的意义 在Java中,我们经常遇到的一种异常情况:空指针异常,在原本的编程中,为了避免这种异常,我们通常会向对象进行判断,然而,过多的判断语句会让我们的代码显得臃肿不堪。 所以在J…

用LangChain打造一个可以管理日程的智能助手

存储设计定义工具创建llm提示词模板创建Agent执行总结 众所周知,GPT可以认为是一个离线的软件的,对于一些实时性有要求的功能是完全不行,比如实时信息检索,再比如我们今天要实现个一个日程管理的功能,这个功能你纯依赖…

拼多多关键词怎么推广

拼多多上的关键词推广可以通过以下步骤进行: 拼多多推广可以使用3an推客。3an推客(CPS模式)给商家提供的营销工具,由商家自主设置佣金比例,激励推广者去帮助商家推广商品链接,按最终有效交易金额支付佣金…

定子的检查和包扎及转子的检查

线圈接好后 用摇表测试 线圈和外壳之间的绝缘性! 测试通过后进行焊接!,焊接的工具在后面的文章中会介绍! 焊接好后,包绝缘管。 焊接完成后 进行星型连接,或者三角形连接! 白扎带进行绑扎&…

室外巡检机器人——A2型高防护轮式巡检机器人

在科技日新月异的时代,室外巡检机器人犹如一位无畏的守护者,悄然出现在我们的视野之中。它迈着坚定的步伐,穿梭于各种复杂的室外环境,承担着重要的巡检任务。它是科技与智慧的结晶,是保障安全与稳定的前沿力量。让我们…

【C语言】字符串操作总结

目录 前言 1.字符串逆序输出 (1)不改变输入的字符串 (2)改变输入的字符串 2.求字符串长度的函数strlen 3.字符串拷贝函数strcpy 4.字符串连接函数strcat 5.字符串比较函数strcmp 6.strncpy(p, p1, n) 复制指定长度字符串…

【Python基础】进程

文章目录 [toc]程序与进程的区别与联系同步任务示例 并行任务示例进程调度的“随机性” 进程属性与方法process_object.start()方法process_object.join()方法process_object.daemon属性没有设置守护进程的情况设置守护进程的情况 process_object.current_process()方法 进程通…

数仓开发:DIM层数据处理

一、了解DIM层 这个就是数仓开发的分层架构 我们现在是在DIM层,从ods表中数据进行加工处理,导入到dwd层,但是记住我们依然是在DIM层,而非是上面的ODS和DWD层。 二、处理维度表数据 ①先确认hive的配置 -- 开启动态分区方案 -- …

c++:优先级队列(priority queue)使用及底层详解,附带仿函数初步使用

文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queue…

Postman的一些使用技巧

Postman 是一个流行的 API 开发工具,用于设计、开发、测试、发布和监控 API。在现代web开发中使用非常广泛。后端开发必备而且必会的工具。 目录 1.配置环境变量 2.动态变量 3.脚本 4.测试 5.模拟 6.监控 7.集合运行器 8.响应保存 9.请求历史 10.同步请求…

嵌入式Linux编辑器vi

一、vi是什么 vi是Linux系统的第一个全屏幕交互式编辑工具。 vi与vim vi 和 vim 是 Linux 和 Unix 系统上非常流行的文本编辑器。尽管 vi 是最初的版本,但 vim(Vi IMproved)是它的一个增强版本,提供了更多的功能和易用性。 vi 是一…

使用ESP8266连接EMQX完成数据上传

国庆期间在家里窝着哪里也没去,到处都是人。打算自己捣鼓点小玩意,相信大家对STM32ESP8266ONENET这种组合已经见怪不怪了,这次不走寻常路,咱们搞点不一样的。正巧自己也一直有做一套网关系统的想法,因此就有了下面这篇…

【论文阅读笔记】关于“二进制函数相似性检测”的调研(Security 22)

个人博客链接 注:部分内容参考自GPT生成的内容 [Security 22] 关于”二进制函数相似性检测“的调研(个人阅读笔记) 论文:《How Machine Learning Is Solving the Binary Function Similarity Problem》(Usenix Securi…

算法提高之背包问题背包问题求具体方案

算法提高之背包问题背包问题求具体方案 核心思想:01背包 dp输出方案 因为求字典序最小的方案 所以当取第i个物品时 下一步要求的就是i1 ~ n的最大方案 所以f意义改变 变成了第i个元素到最后一个元素总容量为j的最优解 之前是前i个物品总容量为j的最优解 这样在之…

[AIGC] MVCC 是怎么实现的

InnoDB 实现的MVCC,是通过 ReadView Undo Log 实现的,Undo Log 保存了历史快照,ReadView可见性规则帮助判断当前版本的数据是否可见。 具体操作时: SELECT InnoDB会根据以下两个条件检查每行记录: a. InnoDB只查找版本…

leetCode71. 简化路径

leetCode71. 简化路径 代码 // 化简:就是把所有的., .. // 去掉弄成进入想进的目录,且结果最后不能有/ // 实现思路: 本质上是一个栈,就是进栈出栈的一个模拟实现 class Solution { public:string simplifyPath(string path) {//…

面试算法-链表-反转链表(golang、c++)

目录 1、题目 2、解题思路 2.1 遍历、迭代 2.2 递归 3、源代码 3.1 c 3.2 golang 4、复杂度分析 4.1 遍历、迭代法 4.2 迭代法 1、题目 链表是一种常用的数据结构,链表的特点是插入、删除节点的效率非常高,因为他不需要移动其他任何元素&…