azkaban---docker安装部署

2 篇文章 0 订阅

操作系统:centos7 ,root用户

docker安装

1、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
2、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、docker安装
yum install docker-ce
4、docker启动
systemctl start docker
5、docker开机启动
systemctl enable docker
6、验证安装是否成功
docker version

 docker安装mysql

 1、查询mysql
docker search mysql
2、安装mysql
docker pull mysql
3、启动mysql容器
docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
4、查看mysql进程
docker ps -a
5、进入mysql容器
docker exec -it mysqlserver bash
 6、登录mysql(密码是:123456)
mysql -uroot -p
7、开启远程访问权限
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

8、退出容器 ctrl+D  或者 exit
9、查看ip :ifconfig

10、Navicat登录mysql

 docker安装jdk8

 1、创建/usr/local/jdk

mikdir /usr/local/jdk

2、下载jdk8

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

3、解压jar包

tar -zvxf jdk-8u141-linux-x64.tar.gz

4、创建dockerfile

vi Dockerfile  ---- > 写入

from centos:centos7
maintainer yangcai
run mkdir /usr/local/jdk
workdir /usr/local/jdk
add jdk-8u141-linux-x64.tar.gz /usr/local/jdk
    
env JAVA_HOME /usr/local/jdk/jdk1.8.0_141
env JRE_HOME /usr/local/jdk/jdk1.8.0_141/jre
env PATH $JAVA_HOME/bin:$PATH
5、根据Dockerfile创建镜像

docker build -t jdk8 .

6、修改tag,方便上传dockerHub

docker tag c8e00765e98c yangcai2019/jdk8:v1.0

利用jdk8镜像运行azkabanWebServer / azkabanExecutorServer 

1、用jdk8生成一个容器

docker run --name azkabanWebServer -v $PWD/azkabanWebServer:/usr/local/jdk/azkabanWebServer -p 8081:8081 -i -t -d yangcai2019/jdk8:v1.0

注意点:

 1、看mysqlserver,azkabanWebServer 容器做了端口映射,则需要关闭防火墙,否则无法访问:    -- 查看firewall-cmd --state
如果输出的是“not running”则FirewallD没有在运行,且所有的防护策略都没有启动,那么可以排除防火墙阻断连接的情况了。
如果输出的是“running”,表示当前FirewallD正在运行,需要再输入下面的命令查看现在开放了哪些端口和服务:
firewall-cmd --list-ports
firewall-cmd --list-services

关闭FirewallD服务:
如果您不需要防火墙,那直接关掉FirewallD服务就好了
systemctl stop firewalld.service

2、执行状态status一直为:Preparing ,后台报错:Caused by: java.net.ConnectException: Connection refused (Connection refused)问题排查:


修改azkaban-web下的azkaban.properties配置文件
去掉MinimumFreeMemory
过滤器会检查 executor 主机空余内存是否会大于 6G,如果不足 6G,则 web-server 不会将任务交由该主机执行
即为:
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

3、执行状态status一直为:FAILED 后台报错:azkaban.executor.ExecutorManagerException: executor became inactive before setting up the flow 12  

查询:SELECT * FROM `executors`;

执行:curl http://localhost:33095/executor?action=activate 

4、Azkaban要求必须有3GB的空闲内存才会执行任务 后台打印日志:[SystemMemoryInfo] [JobRunner-jobB-17] [Azkaban] Free memory amount minus Xmx (1301552 - 0 kb) is less than low mem threshold (3145728 kb), memory request declined.

修改源码:

把3G改成1G 

5、job运行日志报错(这里不是flow日志)azkaban.utils.UndefinedPropertyException: Missing required property 'azkaban.native.lib'

修改azkaban-exec-server的配置文件azkaban.properties

该属性值azkaban.jobtype.plugin.dir=/usr/local/jdk/azkabanWebServer/azkaban-exec-server/plugins/jobtypes,切记是绝对路径

修改commonprivate.properties文件,添加:azkaban.native.lib=false

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值