Blink了解,任务调度工具azkaban,sbt下载jar包慢的原因,日志记录logback使用(sbt依赖排除)
1. Blink的初使用
注意: blink和flink的用法和部署差不多,只是blink底层做了优化,里面已经兼容了各个版本的hadoop了
2. azkaban测试带有依赖的任务
2.1. bash 脚本
-
创建job
[root@node1 ~]# mkdir -p azkaban_jobs/solo_job #在solo_job目录创建两个文件one.job two.job,内容如下 [root@node1 solo_job]# cat one.job type=command command=echo "this is job one" [root@node1 solo_job]# cat two.job type=command dependencies=one command=echo "this is job two" #打包成zip包 [root@node1 azkaban_jobs]# zip -r solo_job.zip solo_job/
-
Azkaban WebUI创建工程并执行
-
执行
-
周期调度
-
2.2. python脚本
-
添加python路径
-
编写python脚本 ,通过azkaban进行调度
3. SBT 依赖树工具 sbt-dependency-graph
- SBT 依赖树工具
github
注意:目前我是用的sbt版本是1.2.8
- sbt依赖树输出到本地文件命令
sbt dependencyTree > dependencyTree.txt
4. Sbt 排除依赖冲突详细解析
5. sbt在idea中下载慢的问题
-
通过模板
sbt new tillrohrmann/flink-project.g8
生成的项目,默认情况下,sbt使用mvn2仓库下载依赖,所以要注释掉,当前项目build.sbt中的ThisBuild / resolvers
部分的代码,使用全局的国内镜像配置
-
IDEA 设置远程仓库
Ctrl + Alt + s(这一步是局部设置,可以通过全局覆盖-Dsbt.override.build.repos=true)
6. 如何将应用的log4j替换成logback详解
6.1. Idea中设置logback
- 在项目build.sbt中加入Logback的依赖项:logback-core、logback-classic,以及log4j-over-slf4j(因为Flink依赖于Hadoop,Hadoop却直接使用Log4j输出日志,所以需要用log4j-over-slf4j将其桥接到Slf4j与Logback)。
- 在所有Flink依赖项中,排除log4j的传递依赖与Log4j-Slf4j的桥接。否则Flink还是会使用Log4j,后面的配置就白费了
- 在resources文件夹下放入logback相关配置文件
- 排除依赖时,可以把现有依赖导入的文件当中,方便排查
6.2. 集群设置logback
- 从Flink安装目录的lib目录中删掉log4j与slf4j-log4j12的JAR包,并加入logback-core、logback-classic、log4j-over-slf4j的JAR包。
- 修改Flink的conf目录下的默认Logback配置文件,一共有三个:
- logback.xml是JobManager和TaskManager的日志配置,Standalone和YARN模式都适用;
- logback-console.xml是Flink命令行客户端的日志配置,只在本地模式适用;
- logback-yarn.xml则是on YARN Session模式下的日志配置。
- 我们修改logback.xml,将其配置为按天滚动的文件日志(Appender为RollingFileAppender),防止持续写同一个日志文件造成大小膨胀