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重启,再手动执行,竟然执行成功了。

zeus部署的更多相关文章

  1. HBase零基础高阶应用实战(CDH5、二级索引、实践、DBA)

    HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...

  2. nginx下面部署fast-cgi和C++【原】

    1.cgi文件的代码 #include "fcgi_stdio.h" #include <stdlib.h> #include <stdio.h> int ...

  3. lamp的动静分离部署

    一.lamp分离部署工作图 二.LAMP的安装与配置 1.环境准备 2.对 PHP 服务器进行部署 #以下为安装PHP及其依赖 [root@php ~ ]# .tar.gz -C /usr/src [ ...

  4. docker实战部署Javaweb项目

    一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...

  5. 转-Zeus资源调度系统介绍

    摘要: 本文主要概述阿里巴巴Zeus资源调度系统的背景和实现思路. 本文主线:问题.解决方案.依赖基础知识.工程实践.目标.经验分享.立足企业真实问题.常规解决策略,引出依赖的容器技术.实践方案,所有 ...

  6. 01 . OpenResty简介部署,优缺点,压测,适用场景及用Lua实现服务灰度发布

    简介 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 ...

  7. 高并发Flask服务部署

    高并发Flask服务部署 AI模型持久化 OOP: 利用面向对象思想,实现算法在内存上的实例化及持久化.即一次模型加载,多次请求调用. class ocr_infer_class(threading. ...

  8. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  9. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

随机推荐

  1. ASP.NET Core 入门笔记7,ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  2. iptables基本命令到深入

    1.关闭firewalld,安装iptables-server并启动服务 systemctl stop firewalld systemctl disable firewalld yun -y ins ...

  3. 如何限制nginx的响应速率

    参考官方地址:http://nginx.org/en/docs/http/ngx_http_core_module.html#variables 用$limit_rate内置的变量可以限制nginx的 ...

  4. SpringCloud学习(六)分布式配置中心(Spring Cloud Config)(Finchley版本)

    在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理, ...

  5. Rectangle

    题目描述 在 x 轴上有相互挨着的矩形, 这些矩形有一个边紧贴着 x 轴,现在给出每个矩形的长宽, 所有的矩形看作整体当作一个画布, 则可以在这个画布上画出的最大的矩形的面积是多少.(画出的矩形长和高 ...

  6. python 其实不用框架你也可以实现ORM

    """ ORM思路归纳: 1.将每张表映射成不同的表类,一个表类映射一张表.表类的类属性 需要有表名.字段名 将每个字段类型映射为字段类型类,一个字段类型类映射一个类 字 ...

  7. PYTHON 100days学习笔记008-1:数据结构补充

    目录 Day008_01:数据结构补充 1.列表list 1.1 将列表当作堆栈使用 1.2 将列表当作队列使用 1.3 列表推导式 1.4 嵌套列表解析 1.5 del语句 2.元组和序列 3.集合 ...

  8. SqlServer中获取所有数据库,所有表,所有字段

    原文:SqlServer中获取所有数据库,所有表,所有字段 一.获取所有数据库 select * from master.dbo.SysDatabases 二.获取某个库中所有表 SELECT * F ...

  9. c++练习—实现简单的4则运算

    #pragma once class Counter { public: void setExp(const char* exp);//设置表达式 void cleanExp(); //清除表达式 v ...

  10. 减2或减3(很搞的贪心)2019牛客国庆集训派对day6

    题意:https://ac.nowcoder.com/acm/contest/1111/D 问你先减二x次的情况下,最少减几次3. 思路: %3不为0的要先减2,然后%3为0的要先减大的(比如9 3 ...