您的位置:首页 > 其它

Azkaban环境搭建与常见问题解决

2020-01-15 11:08 183 查看

Azkaban环境搭建与常见问题解决
1.环境说明
本次安装在centos7上,已存在的环境包括jdk,Hadoop,hive,sqoop。在此基础上安装azkaban,如果只是简单的安装与实例运行,不涉及Hadoop或hive相关的内容可以直接安装,并不影响使用。JDK与MySQL需要提前安装
2.安装包下载解压
azkaban-web-server-2.5.0.tar.gz
azkaban-executor-server-2.5.0.tar.gz
azkaban-sql-script-2.5.0.tar.gz
以上三个压缩包分别为服务器、执行服务器、sql脚本。上传至虚拟机中解压。如:tar zxvf azkaban-web-server-2.5.0.tar.gz -C /root,“-C”是指将文件解压到指定目录
3.mysql脚本导入
安装步骤可参考https://blog.csdn.net/weixin_43993673/article/details/100163001
https://blog.csdn.net/weixin_43993673/article/details/100511728
登录MySQL后创建azkaban数据库,执行azkaban-sql-script-2.5.0下的create-all-sql-2.5.0.sql脚本

mysql -u root -p
create database azkaban;
use azkaban;
source azkaban-sql-script/ create-all-sql-2.5.0.sql

azkaban-sql-script解压出来的文件名为azkaban-2.5.0,实际目录根据自己的来

4.关闭防火墙
firewall操作:
#service firewalld status; #查看防火墙状态
(disabled 表明 已经禁止开启启动 enable 表示开机自启,inactive 表示防火墙关闭状态 activated(running)表示为开启状态)
#service firewalld start; 或者 #systemctl start firewalld.service;#开启防火墙
#service firewalld stop; 或者 #systemctl stop firewalld.service;#关闭防火墙
#service firewalld restart; 或者 #systemctl restart firewalld.service; #重启防火墙
#systemctl disable firewalld.service#禁止防火墙开启自启
#systemctl enable firewalld#设置防火墙开机启动
#yum remove firewalld#卸载firewall
这里需要关闭防火墙并禁止开机自启

5.JDK安装
这里安装jdk8,对应的安装包可以去官网下载(linux版本)
解压安装包

tar zxvf jdk-8u65-linux-x64.tar.gz

配置环境变量,编辑/etc/profile

vi /etc/profile

在文件最下方添加下面配置

export JAVA_HOME=/root/apps/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


使配置生效

source /etc/profile


可使用jps或java -version验证

6.ssl配置

keytool -keystore keystore -alias jetty -genkey -keyalg RSA


完成后会在当前目录生成keystore证书文件,将文件拷贝到azkaban web服务器根目录的bin目录下。例如:cp keystore /root/azkaban-web-2.5.0

7.时区修改
将服务器时区修改为上海,使用tzselect 命令。
tzselect
分别输入5、9、1、1


拷贝时区文件

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

如当前时区为shanghai则出现如图所示信息

8.修改azkaban-web-server

cd /root/azkaban-web-2.5.0/conf/

修改azkaban.properties文件

vi azkaban.properties
#Azkaban Personalization Settings
azkaban.name=Test					#服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban		#描述
azkaban.color=#FF3601				#UI颜色
azkaban.default.servlet.path=/index
web.resource.dir=web/				#默认根web目录
default.timezone.id=Asia/Shanghai	#默认时区,已改为亚洲/上海 默认为美国

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager		#用户权限管理默认类
user.manager.xml.file=conf/azkaban-users.xml			#用户配置,具体配置参加下文

#Loader for projects
executor.global.properties=conf/global.properties		# global配置文件所在位置
azkaban.project.dir=projects

database.type=mysql				#数据库类型
mysql.port=3306					#端口号
mysql.host=localhost
mysql.database=azkaban			#数据库实例名
mysql.user=root					#数据库用户名
mysql.password=123456			#数据库密码
mysql.numconnections=100			#最大连接数

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25				#最大线程数
jetty.ssl.port=8443					#Jetty SSL端口
jetty.port=8081					#Jetty端口
jetty.keystore=keystore				#SSL文件名
jetty.password=123456				#SSL文件密码
jetty.keypassword=123456			#Jetty主密码 与 keystore文件相同
jetty.truststore=keystore				 #SSL文件名
jetty.trustpassword=123456			# SSL文件密码

# Azkaban Executor settings
executor.port=12321				#执行服务器端口

# mail settings
mail.sender=						#发送邮箱
mail.host=						#发送邮箱smtp地址
job.failure.email=					 #任务失败时发送邮件的地址
job.success.email=					#任务成功时发送邮件的地址

lockdown.create.projects=false

cache.directory=cache				#缓存目录

9.修改azkaban-executor-server

cd /root/azkaban-executor-2.5.0/conf/
vi azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai		#时区

# Azkaban JobTypes Plugins 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes		 #jobtype 插件所在位置

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

#数据库设置
database.type=mysql			#数据库类型(目前只支持mysql)
mysql.port=3306				#数据库端口号
mysql.host=192.168.8.129		#数据库IP地址
mysql.database=azkaban		#数据库实例名
mysql.user=root				#数据库用户名
mysql.password=123456		#数据库密码
mysql.numconnections=100		#最大连接数

# Azkaban Executor settings 执行服务器配置
executor.maxThreads=50		 #最大线程数
executor.port=12321			#端口号(如修改,请与web服务中一致)
executor.flow.threads=30		 #线程数

10.azkaban-web-server

cd /root/azkaban-web-2.5.0/conf/vi azkaban-users.xml

增加管理员用户

<azkaban-users>

<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />

<user username="metrics" password="metrics" roles="metrics"/>

<user username="admin" password="admin" roles="admin,metrics" />

<role name="admin" permissions="ADMIN" />

<role name="metrics" permissions="METRICS"/>

</azkaban-users>

11.启动
Web服务器
在azkaban web服务器目录下执行启动命令

bin/azkaban-web-start.sh

注:在web服务器根目录运行
或者启动到后台

nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &

执行服务器

在执行服务器目录下执行启动命令

bin/azkaban-executor-start.sh

注:只能在执行服务器根目录运行
12.错误
① 启动web服务时出现如下错误

2019/10/11 15:04:41.904 +0800 INFO [AzkabanWebServer] [Azkaban] Loading trigger based scheduler
2019/10/11 15:04:41.921 +0800 INFO [AzkabanWebServer] [Azkaban] Loading plug-in checker and action types
2019/10/11 15:04:41.921 +0800 ERROR [AzkabanWebServer] [Azkaban] plugin path plugins/triggers doesn't exist!
2019/10/11 15:04:41.921 +0800 INFO [AzkabanWebServer] [Azkaban] Setting timezone to Asia/Shanghai

可能是配置文件中时区配置出错,检查配置文件中配置参数前后是否有空格(这里实际在使用时暂时没有影响),可以在web服务器plugins目录下手动创建triggers目录
在浏览器访问时后台出现如下错误

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
at sun.security.ssl.InputRecord.read(InputRecord.java:527)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:708)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
2019/10/11 15:05:02.564 +0800 WARN [log] [Azkaban] EXCEPTION
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
at sun.security.ssl.InputRecord.read(InputRecord.java:527)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:708)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
2019/10/11 15:05:07.584 +0800 WARN [log] [Azkaban] EXCEPTION

SSL权限认证的错误,在访问时使用https://ip:8443。同理,如果使用https报错,那么改为http,用户名:admin,密码:admin

  • 点赞
  • 收藏
  • 分享
  • 文章举报
无痕灬 发布了11 篇原创文章 · 获赞 0 · 访问量 607 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: