zeus部署
1.下载zeus
阿里在github上已经不维护zeus了,在网上找到一个别人贡献的
https://github.com/michael8335/zeus2
下载下来
通过shell
rz命令上传到服务器
解压:> unzip zeus2-master.zip
将解压的文件夹移动到自己设定的目录:
> mv zeus2-master /zeus
2.配置zeus
1)切换到zeus目录,创建日志目录
>cd /zeus
>mkdir logs
>mkdir hdfs-upload-dir
>mdir run_job_dir
2)修改配置文件antx.properties
目录:
/zeus/web/src/main/filter/antx.properties
#环境配置,用来标记环境,可以配合Environment使用
zeus.env=test-env
zeus.loggingRoot=/zeus/logs
zeus.loggingLevel=warn
#任务执行文件夹,每次任务都会在此文件夹下新建一个临时文件夹
zeus.localdata.dir=/zeus/run_job_dir
#此处必须是hdfs路径,所有的上传附件都会存放在下面路径上
zeus.hdfsLibPath=/zeus/hdfs-upload-dir
#环境配置,如果是在一个集群中,需要配置城同一个名称
zeus.schedule.group=test-env
#Scheduler 与 Worker 通信的端口
zeus.connect.port=9887
#hadoop jobtracker地址,填写ip+port 或者 domain+port
zeus.jobtracker=192.168.1.166:50030 #zk配置非必选,可以为空,此处的zk是用来通知任务的成功失败事件的
zeus.zookeeper.host=
3)将配置文件antx.properties 拷贝到用户主目录
> cp antx.properties ~
4)配置highcharts的位置,修改/zeus/web/pom.xml文件
>cd /zeus/web/
>vi pom.xml
将local.highcharts修改如下:
<local.highcharts>/zeus/web/libs/highcharts-1.4.0.jar</local.highcharts>
5)配置zeus数据库连接信息:persistence.xml
>cd /zeus/web/src/main/resources
>vi persistence.xml
数据库ip地址、数据库名、用户名、密码改成自己的
6)创建dos2unix命令
> yum install dos2unix.x86_64 -y
7)下载maven。安装,配置环境变量
8)进入zeus目录
> cd /zeus
>mvn clean:clean 成功
>mvn package -Dmaven.test.skip=true 成功
把/zeus/web/target/zeus-web.war 拷贝到/apache-tomcat/webapps/下
>cd /apache-tomcat/bin
>startup.sh 启动tomcat
报错:
Hive Schema version 0.12.0 does not match metastore's schema version 2.3.0 Metastore is not upgraded or corrupt
zeus源码里引入的
hive-metastor,hive-exec,hive-common包都是0.12.0版本
想着自己安装的hive是2.3.4版本
找了maven仓库没有2.3.4版本,就把0.12.0改成2.3.0
再重新打包,启动
报错:
java.lang.NoClassDefFoundError: org/datanucleus/PersistenceNucleusContext,找不到这个类,就在maven仓库上找datanucleus的3.2.1版本,jar包下载下来,看了下,确实没有这个类,看5.0.3还是5.0.1版本有这个类,就在zeus上把版本改了,重新编译打包,tomcat部署启动,
又报错
org.datanucleus.util.Localiser.getInstance(Ljava/lang/String;Ljava/lang/Clas
意思是Localiser.getInstance没有这个带string的构造方法,去刚下载的5.0.1的包看了确实没有,又去maven 仓库看了3.x的版本有这个,但却没PersistenceNucleusContext类,真是矛盾,好像行不通啊
先放下linux这边
直接在window本地调试下,eclipse中导入zeus源码,直接在server中加入zeus-web,启动,不报错,但在浏览器访问,不行,访问不了
看了web.xml配置
<welcome-file-list>
<welcome-file>platform.html</welcome-file>
</welcome-file-list>
首页是 platform.html
但源码中没有找到
先在cmd中进入zeus源码目录,clean,package
将zeus2-master/web/target/zeus-web.war
放到tomcat8/webapps下
启动tomcat
访问成功
那为什么本地可能,一样的代码放到linux上编译打包部署各种错呢?
还是把这个代码关于logs ,run_job_dir,hdfs-upload-dir相关目录从windows修改成linux上路径
继续放到linux上去编译打包,都没问题
tomcat中运行,又报错
Hive Schema version 0.12.0 does not match metastore's schema version 2.3.0 Metastore is not upgraded or corrupt
还是一样的问题
这次在网上搜了下,说是把hive的mysql库version表中版本由2.3.0改成我引入包的版本0.12.0
SCHEMA_VERSION由原来的2.3.0改成0.12.0
重启tomcat,不报刚才的错了,又出现新的错:
Could not instantiate bean class [com.taobao.zeus.store.CliTableManager]: Constructor threw exception; nested exception is java.lang.NumberFormatException: For input string: "0s"
解决:找到/hive/conf/hdfs-site.xml文件,把里面配置的参数带s的,都把s去掉。
继续重启tomcat,不报错了,浏览器访问也OK了
搭建好了,怎么调度任务呢?
如下图,在调度中心中创建一些任务分组,分组创建好了,我新建了一个从mysql到hive抽取数据的任务,抽取data_user表,名字就叫data_user,
定时表达式:每天3点执行。
脚本:ssh -p 22 root@master sh /dump 1
解释:通过ssh远程连接执行sh命令
ssh -p 端口 用户@ip sh 你要执行的命令
我因为zeus和datax,hive,hadoop装在一台机器上,直接用机器名master,而且做了免密登录。
dump是一个shell脚本,去调用datax命令的,并且传递参数1表示任务号是1,任务放在/datax/job下 ,1.json任务
#!bash
. /etc/profile export DATAX_HOME=/datax if [ $# == 2 ]; then
today=$2
else
today=`date -d -1days '+%Y-%m-%d'`
fi
if test $? -ne 0
then
exit 11
fi cd $DATAX_HOME/bin
python datax.py ../job/$1.json
点击手动执行任务,结果报错(日志在当初安装部署zeus时创建的日志目录里,我放在/zeus/logs下,zeus部署在/tomcat/webapps下)
打日志调试,发现写channel里写不了,报错,代码跟踪下来,发现从context里获取的channel为空,所以channel.write(sm)报错了。
但是context.setServerChannel(future.getChannel());这里明明是有值的,不为空。
断续查找,发现配置了端口9887
而且分布式锁通信,用到了这个端口
于是在服务器上,查看下这个端口
>lsof -i:9887 发现9887这个端口好多,会不会占用太多了卡住了,一口气全kill
把日志什么的删除掉,tomcat重启,再手动执行,竟然执行成功了。
最新文章
- oracle数据查询
- StringUtils中 isNotEmpty 和isNotBlank的区别
- 小度Wifi_设置
- js中的各种宽高以及位置总结
- Android 中断线程的处理
- 机器学习之SVM(支持向量机)
- 最小日志量的insert操作
- SQLSERVER和sybase的差异
- amazeui 后台模板
- 安装免安装版的mysq服务的方法l
- AngularJS Front-End App with Cloud Storage Tutorial Part 1: Building a Minimal App in Seven Steps
- iOS&#183;UIKit &; Foundation框架—Annotations &; Category注解工具类
- [转载] Java集合---HashMap源码剖析
- 5、Android Service测试
- OpenCV-Python-边缘检测
- [Swift]LeetCode3. 无重复字符的最长子串 | Longest Substring Without Repeating Characters
- IDEA环境下GIT操作浅析之一Idea下仓库初始化与文件提交涉及到的基本命令
- centos java tomcat 中文乱码解决办法
- React Native组件之BackAndroid !安卓手机的物理返回键的使用
- Tqdm 进度条可视化模块