您的位置:首页 > 新闻 > 会展 > uniapp开源商城源码_免费网页在线客服系统甜甜_找客户资源的软件_简单的网页设计源代码

uniapp开源商城源码_免费网页在线客服系统甜甜_找客户资源的软件_简单的网页设计源代码

2025/1/7 23:12:20 来源:https://blog.csdn.net/yyzzyyds/article/details/144934650  浏览:    关键词:uniapp开源商城源码_免费网页在线客服系统甜甜_找客户资源的软件_简单的网页设计源代码
uniapp开源商城源码_免费网页在线客服系统甜甜_找客户资源的软件_简单的网页设计源代码

目录

Azkaban的使用

1、使用Flow1.0(比较老旧)

2、Flow2.0的用法

1、小试牛刀

2、YAML格式的数据

3、多任务依赖

4、内嵌流(嵌套流)案例

5、动态传参

3、Azkaban的报警机制

1)邮箱通知

2)电话报警机制

4、关于azkaban脚本优化的问题


Azkaban的使用

1、使用Flow1.0(比较老旧)

需要注意的点:

1. azkaban的job流文件,后缀是.job1)  type属性 必须赋值值有:command,java,pig
2. azkaban执行的job必须要提前打包,打包的格式必须是zip格式不能打包文件夹,打包文件
3. 流文件里的书写格式:1)一定要注意行末不要有空格2)编码集的问题,如果在window上实在不行,可以上传到linux进行zip压缩,然后下载到windows上,再上传到azkaban上

先在我们的azkaban上创建一个项目:

Name 不能是中文的

Description 不能为空,可以是中文

编写一个job任务:

type=command
command=echo "hello world"

使用windows编辑这个文件的时候,一般要注意,格式,需要是unix:

对这个hello.job 进行打包,不要打包文件夹,格式必须是zip格式

打成zip 包

上传至项目中:

执行的时候报了错:

进行如下修复:

在exec-server中,修改配置文件 azkaban.proerties 添加如下代码,注意安装路径

azkaban.jobtype.plugin.dir=/opt/installs/azkaban/exec-server/plugins/jobtypes

重启exec-server即可。

从这个里面是不是可以看到一个任务,被调用了。

通过案例可以看到:我们可以将编写好的shell,以及mr任务,以及定时任务以及hive脚本都可以写成job任务,让azkaban帮助我们调度。

2、Flow2.0的用法

1、小试牛刀

需要创建两个文件 JobA.flow JobA.project

在JobA.project中编写一句话:

azkaban-flow-version: 2.0

在JobA.flow中,编写任务,需要注意YAML语句:

nodes:- name: jobAtype: commandconfig:command: echo "this is a simple test"

打包两个文件到一个zip中

2、YAML格式的数据

听说过JSON、XML,后来出现YAML,作用跟json和xml是一样的都是一种文件,可以传递信息。

JSON  和  XML 都是用来存储和传输数据的。
JSON  存储数据,比如 datax中大量使用了json"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","age"],"splitPk": "id","connection": [{"table": ["user"],"jdbcUrl": ["jdbc:mysql://192.168.52.12:3306/sqoop"]}]}}
编写好了一个json ,里面含有大量的信息,肯定是有人用了。用的人肯定解析了这个文件。
JSON 传输数据:   html --> Java(SSM SSH SpringBoot)
xml 也可以做到。但是慢慢的淘汰了。
这三类文件格式都可以充当配置文件(存储数据)
JSON:  core.json
XML : hdfs-site.xml
YAML : 即将开始

比如SpringBoot 里面支持两种配置文件:application.properties 和 application.yaml

1. 大小写敏感
2. 使用缩进表示层级关系 ;
3. 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级;
4. 使用#表示注释 ;
5. 字符串默认不用加单双引号,但单引号和双引号都可以使用,双引号表示不需要对特殊字符进行转义;
6. YAML 中提供了多种常量结构,包括:整数,浮点数,字符串,NULL,日期,布尔,时间。
7、缩进不允许使用tab,只允许空格

语法格式:

# value 与 : 符号之间必须要有一个空格
key: value
# 写法一 同一缩进的所有键值对属于一个map
key: key1: value1key2: value2# 写法二
{key1: value1, key2: value2}
# 写法一 使用一个短横线加一个空格代表一个数组项
- a
- b
- c# 写法二
[a,b,c]
s1: '内容\n 字符串'
s2: "内容\n 字符串"转换后:
{ s1: '内容\\n 字符串', s2: "内容\n 字符串" }如果你想表示一个换行:
s1: "内容\n 字符串"
Flow 2.0 建议将公共参数定义在 `config` 下,并通过 `${}` 进行引用。

yaml 是这两年非常流行的数据格式,书写格式要求很严格,层级关系纯靠缩进进行表示。

3、多任务依赖

nodes:- name: jobEtype: commandconfig:command: echo "This is job E"# jobE depends on jobDdependsOn:- jobD- name: jobDtype: commandconfig:command: echo "This is job D"# jobD depends on jobA、jobB、jobCdependsOn:- jobA- jobB- jobC- name: jobAtype: commandconfig:command: echo "This is job A"- name: jobBtype: commandconfig:command: echo "This is job B"- name: jobCtype: commandconfig:command: echo "This is job C"
azkaban-flow-version: 2.0

复习一下昨天的安装:

可以一次执行多个任务,也可以单独执行某个任务:

总结:多任务编排,靠dependsOn 这个属性。

定时任务:

实战:将我们刚才的多任务的job,定时执行:

4、内嵌流(嵌套流)案例

Azkaban中一个流可以包含其他的流,方便分组和排序,也方便协作
因为在工作过程中不一定azkaban是你一个人在用,假如你的同事已经写好了好几个流,你需要放入到你的流文件中,可以直接copy,不需要修改其他的。

不带参数传递的内嵌流的使用:

nodes:- name: jobCtype: commandconfig:command: echo "This is job C"dependsOn:- embedded_flow- name: embedded_flowtype: flownodes:- name: jobBtype: commandconfig:command: echo "This is job B"dependsOn:- jobA- name: jobAtype: commandconfig:command: echo "This is job A"

带有参数的内嵌流:

nodes:- name: jobCtype: commandconfig:command: echo "This is job C"dependsOn:- embedded_flow- name: embedded_flowtype: flowconfig:name: zhangsannodes:- name: jobBtype: commandconfig:command: echo "This is job B ${name}"dependsOn:- jobA- name: jobAtype: commandconfig:command: echo "This is job A"
azkaban-flow-version: 2.0

5、动态传参

代码演示:

nodes:- name: jobCtype: commandconfig:command: echo "This is job C"dependsOn:- test_flow- name: test_flow#此处是type=flowtype: flowconfig:prop: ${canshu}#此处有nodesnodes:- name: jobBtype: commandconfig:command: echo "This is job B ${prop}"dependsOn:- jobA- name: jobAtype: commandconfig:command: echo "This is job A"

打包,上传

3、Azkaban的报警机制

1)邮箱通知

必须有一个邮箱服务器,你想接受一个邮件,肯定是另一个邮箱给你发送的。

Gmail 邮箱 谷歌的 注册一个邮箱吧

163 126 yeah 都是 163 的

名片上印上你的邮箱

接着进行配置:在azkaban的 web-server 端,进行邮箱的配置:

mail.sender=
mail.host=
mail.user=
mail.password=

重启web-server服务。

执行一个任务的时候,就可以设置要接受的邮箱地址了。

2)电话报警机制

睿象云-智能运维管理平台-智能运维系统-自动化运维性能监控平台

会生成一个appKey:

最后一个Azkaban的重试机制:

# 重试次数
retries: 3
# 每次重试时间间隔
retry.backoff: 10000案例:
nodes:- name: jobAtype: commandconfig:command: echo "this is a simple test"retries: 3retry.backoff: 10000

4、关于azkaban脚本优化的问题

目前遇到的问题:
1、启动azkaban的时候,需要启动两个甚至多个脚本,比较麻烦start-web.sh  start-exec.sh
2、日志查看没有放在一块,需要切换目录比较麻烦优化方案:
编写一个脚本  azkaban.sh

源码如下:

#!/bin/bash
# 参数个数一个或者两个 not equal to --> ne
if  [ $# -lt 1 ] && [ $# -gt 2 ] 
then
echo -e  "\033[32mUsage1:\033[0m azkaban.sh 1 \033[32mor\033[0m azkaban.sh 0"
echo -e  "\033[32mUsage2:\033[0m azkaban.sh 1 w \033[32mor\033[0m azkaban.sh 0 w"
exit;
fi# 输入 1 为启动, 输入 0 为关闭
v1="web"
v2="exec"if [ $1 -eq 1 ]
then
stat="start-"
elif [ $1 -eq 0 ]
then
stat="shutdown-"
else
echo -e "\033[32mUsage:\033[0m azkaban.sh 1 \033[32mor\033[0m azkaban.sh 0"
exit;
ficd /opt/installs/azkaban/logs
# 传入第二个参数 w 代表 web-server , e 代表 exec-server 不传第二个默认全部启动/停止
if [ "$2" = 'w' ]
then
path1=/opt/installs/azkaban/${v1}-server/bin/${stat}${v1}.sh
echo -e "\033[32m${stat}${v1}.sh\033[0m"
sh  ${path1}
elif [ "$2" = 'e' ]
then
path2=/opt/installs/azkaban/${v2}-server/bin/${stat}${v2}.sh
echo -e "\033[32m${stat}${v2}.sh\033[0m"
sh  ${path2}
elif [ 'a'"$2"'a' = 'aa' ]
then
path1=/opt/installs/azkaban/${v1}-server/bin/${stat}${v1}.sh
echo -e "\033[32m${stat}${v1}.sh\033[0m"
sh  ${path1}
sleep 2
path2=/opt/installs/azkaban/${v2}-server/bin/${stat}${v2}.sh
echo -e "\033[32m${stat}${v2}.sh\033[0m"
sh  ${path2}
else
echo -e "\033[32mUsage1:\033[0m azkaban.sh 1 w \033[32mor\033[0m azkaban.sh 0 w"
echo -e "\033[32mUsage2:\033[0m azkaban.sh 1 e \033[32mor\033[0m azkaban.sh 0 e"
exit;
fisleep 2
echo -e "\033[32m-------------------jps--------------------\033[0m"
jps

配置脚本:

cd /usr/local/bin
将脚本放入进去chmod 777 azkaban.sh

创建logs目录:

cd /opt/installs/azkaban/
用于存储两个服务的日志
mkdir logs 

使用:

# 使用方法
# 1.启动azkaban
[root@hadoop10 ~]# azkaban.sh 1
# 单独启动Web
[root@hadoop10 ~]# azkaban.sh 1 w
# 单独启动exec
[root@hadoop10 ~]# azkaban.sh 1 e# 2.关闭azkaban
[root@hadoop10 ~]# azkaban.sh 0
# 单独关闭Web
[root@hadoop10 ~]# azkaban.sh 0 w
# 单独关闭exec
[root@hadoop10 ~]# azkaban.sh 0 e

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com