启动azkaban

在启动了server和excutor之后,在浏览器打开azkaban,会发现不能打开,日志报这个错误

    at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:)
at sun.security.ssl.InputRecord.read(InputRecord.java:)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:)
// ::24.499 + WARN [log] [Azkaban] EXCEPTION
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:)
at sun.security.ssl.InputRecord.read(InputRecord.java:)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:)
// ::24.680 + WARN [log] [Azkaban] EXCEPTION
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:)
at sun.security.ssl.InputRecord.read(InputRecord.java:)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:)
// ::24.809 + WARN [log] [Azkaban] EXCEPTION
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:)
at sun.security.ssl.InputRecord.read(InputRecord.java:)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:)
// ::14.746 + WARN [log] [Azkaban] EXCEPTION
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.read(InputRecord.java:)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:)
... more

其实这个问题不难解决,在打开的时候建议用谷歌浏览器:地址是  https://192.168.86.131:8443/(https://你的ip:8433)

注意了,之前一直不能打开是因为使用了http,这里强调一下,一定不能用http,必须用https,然后选择高级选项,运行访问不安全的地址,因为这个地址被默认为不安全的

编写upload.job脚本

# upload.job
type=command
command=bash uploadFile2Hdfs.sh

编写uploadFile2Hdfs.sh脚本

#!/bin/bash

#set java env
export JAVA_HOME=/opt/modules/jdk1..0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH #set hadoop env
export HADOOP_HOME=/opt/modules/hadoop-2.6.
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH #版本1的问题:
#虽然上传到Hadoop集群上了,但是原始文件还在。如何处理?
#日志文件的名称都是xxxx.log1,再次上传文件时,因为hdfs上已经存在了,会报错。如何处理? #如何解决版本1的问题
# 、先将需要上传的文件移动到待上传目录
# 、在讲文件移动到待上传目录时,将文件按照一定的格式重名名
# /export/software/hadoop.log1 /export/data/click_log/xxxxx_click_log_{date} #日志文件存放的目录
log_src_dir=/home/hadoop/logs/log/ #待上传文件存放的目录
log_toupload_dir=/home/hadoop/logs/toupload/ day_01=`date -d'-1 day' +%Y-%m-%d`
syear=`date --date=$day_01 +%Y`
smonth=`date --date=$day_01 +%m`
sday=`date --date=$day_01 +%d` #echo $day_01
#echo $syear
#echo $smonth
#echo $sday #日志文件上传到hdfs的根路径
hdfs_root_dir=/data/clickLog/$syear/$smonth/$sday hadoop fs -mkdir -p $hdfs_root_dir #打印环境变量信息
echo "envs: hadoop_home: $HADOOP_HOME" #读取日志文件的目录,判断是否有需要上传的文件
echo "log_src_dir:"$log_src_dir
ls $log_src_dir | while read fileName
do
if [[ "$fileName" == access.log ]]; then
# if [ "access.log" = "$fileName" ];then
date=`date +%Y_%m_%d_%H_%M_%S`
#将文件移动到待上传目录并重命名
#打印信息
echo "moving $log_src_dir$fileName to $log_toupload_dir"xxxxx_click_log_$fileName"$date"
mv $log_src_dir$fileName $log_toupload_dir"xxxxx_click_log_$fileName"$date
#将待上传的文件path写入一个列表文件willDoing
echo $log_toupload_dir"xxxxx_click_log_$fileName"$date >> $log_toupload_dir"willDoing."$date
fi done
#找到列表文件willDoing
ls $log_toupload_dir | grep will |grep -v "_COPY_" | grep -v "_DONE_" | while read line
do
#打印信息
echo "toupload is in file:"$line
#将待上传文件列表willDoing改名为willDoing_COPY_
mv $log_toupload_dir$line $log_toupload_dir$line"_COPY_"
#读列表文件willDoing_COPY_的内容(一个一个的待上传文件名),此处的line 就是列表中的一个待上传文件的path
cat $log_toupload_dir$line"_COPY_" |while read line
do
#打印信息
echo "puting...$line to hdfs path.....$hdfs_root_dir"
hadoop fs -put $line $hdfs_root_dir
done
mv $log_toupload_dir$line"_COPY_" $log_toupload_dir$line"_DONE_"
done

然后把这两个脚本打包

进入azkaban的登录页面

选择刚刚打包的upflow.zip

这个时候把日志文件上传到集群上

查看HDFS目录,证明文件上传成功

本地集群的日志文件也不在了

编写脚本clean.job

# clean.job
type=command
dependencies=upload
command=bash clean.sh

编写clean.sh脚本

#!/bin/bash
export JAVA_HOME=/opt/modules/jdk1..0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#set hadoop env
export HADOOP_HOME=/opt/modules/hadoop-2.6.
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH log_local_dir=/home/hadoop/flume/ #log_hdfs_dir=/test/// day_01=`date -d'-1 day' +%Y-%m-%d`
syear=`date --date=$day_01 +%Y`
smonth=`date --date=$day_01 +%m`
sday=`date --date=$day_01 +%d` #echo $day_01
#echo $syear
#echo $smonth
#echo $sday log_hdfs_dir=/data/clickLog/$syear/$smonth/$sday
#echo $log_hdfs_dir
click_log_clean=com.it19gong.clickLog.AccessLogDriver clean_dir=/cleaup/$syear/$smonth/$sday echo "hadoop jar /home/hadoop/hivedome/hiveaad.jar $click_log_clean $log_hdfs_dir $clean_dir"
hadoop fs -rm -r -f $clean_dir
hadoop jar /home/hadoop/hivedome/mrclick.jar $click_log_clean $log_hdfs_dir $clean_dir

编写upload.job脚本

# upload.job
type=command
command=bash uploadFile2Hdfs.sh

然后将这四个脚本进行打包

上传数据文件

编写脚本hivesql.sh

#!/bin/bash
export JAVA_HOME=/opt/modules/jdk1..0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#set hadoop env
export HADOOP_HOME=/opt/modules/hadoop-2.6.
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH export HIVE_HOME=/opt/modules/hive
export PATH=${HIVE_HOME}/bin:$PATH log_local_dir=/home/hadoop/flume/ #log_hdfs_dir=/test/// day_01=`date -d'-1 day' +%Y-%m-%d`
syear=`date --date=$day_01 +%Y`
smonth=`date --date=$day_01 +%m`
sday=`date --date=$day_01 +%d` #echo $day_01
#echo $syear
#echo $smonth
#echo $sday log_hdfs_dir=/data/clickLog/$syear/$smonth/$sday
#echo $log_hdfs_dir
click_log_clean=com.it19gong.clickLog.AccessLogDriver clean_dir=/cleaup/$syear/$smonth/$sday
HQL_origin="load data inpath '$clean_dir' into table mydb2.access"
#HQL_origin="create external table db2.access(ip string,day string,url string,upflow string) row format delimited fields terminated by ',' location '$clean_dir'"
#echo $HQL_origin hive -e "$HQL_origin"

编写脚本hivesqljob.job

# hivesql.job
type=command
dependencies=clean
command=bash hivesql.sh

编写脚本ip.sh

#!/bin/bash
export JAVA_HOME=/opt/modules/jdk1..0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#set hadoop env
export HADOOP_HOME=/opt/modules/hadoop-2.6.
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH export HIVE_HOME=/opt/modules/hive
export PATH=${HIVE_HOME}/bin:$PATH log_local_dir=/home/hadoop/flume/ #log_hdfs_dir=/test/// day_01=`date -d'-1 day' +%Y-%m-%d`
syear=`date --date=$day_01 +%Y`
smonth=`date --date=$day_01 +%m`
sday=`date --date=$day_01 +%d` #echo $day_01
#echo $syear
#echo $smonth
#echo $sday log_hdfs_dir=/data/clickLog/$syear/$smonth/$sday
#echo $log_hdfs_dir
click_log_clean=com.it19gong.clickLog.AccessLogDriver clean_dir=/cleaup/$syear/$smonth/$sday HQL_origin="insert into mydb2.upflow select ip,sum(upflow) as sum from mydb2.access group by ip order by sum desc "
#echo $HQL_origin hive -e "$HQL_origin"

编写脚本ipjob.job

# ip.job
type=command
dependencies=hivesqljob
command=bash ip.sh

编写脚本mysql.sh

#!/bin/bash
export JAVA_HOME=/opt/modules/jdk1..0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#set hadoop env
export HADOOP_HOME=/opt/modules/hadoop-2.6.
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH export HIVE_HOME=/opt/modules/hive
export PATH=${HIVE_HOME}/bin:$PATH
export SQOOP_HOME=/opt/modules/sqoop
export PATH=${SQOOP_HOME}/bin:$PATH
sqoop export --connect \
jdbc:mysql://node1:3306/userdb \
--username sqoop --password sqoop --table upflow --export-dir \
/user/hive/warehouse/mydb2.db/upflow --input-fields-terminated-by ','

编写脚本mysqljob.job

# mysql.job
type=command
dependencies=ipjob
command=bash mysql.sh

打包成job.zip

上传日志文件

打开本地安装的phpsudy

在浏览器打开网页http://www.echart.com/

24.Azkaban调度脚本的编写的更多相关文章

  1. azkaban调度

    azkaban调度 1.概述 azkaban是一套调度系统,常用大数据作业调度.azkaban包括web和executor两套程序,web主要完成展示和交互,executor上完成调度和作业提交执行. ...

  2. 第2节 azkaban调度:16、azkaban的介绍以及azkaban的soloserver的安装使用

    2. 工作流调度器azkaban 2.1 概述 azkaban官网: https://azkaban.github.io/ 2.1.1为什么需要工作流调度系统 l  一个完整的数据分析系统通常都是由大 ...

  3. [改善Java代码]易变业务使用脚本语言编写

    建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP.Ruby.Groovy.JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们 ...

  4. Tsung脚本中使用动态参数(一)---直接在脚本里编写Erlang代码

    杀死一个程序猿,只要改三次需求.同理,杀死一个接口自动化测试人员,只要改三次接口数据处理方式.我目前的状态,改了一次接口数据处理方式,有一种胸闷的感觉. 因为改需求,所以,要改脚本.T_T.所以,才有 ...

  5. selenium从入门到应用 - 2,简单线性脚本的编写

    本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下 ...

  6. 24 道 shell 脚本面试题

    想要成为中高级phper, shell 脚本是需要掌握的,它有助于你在工作环境中自动完成很多任务. 如下是一些面试过程中,经常会遇到的 shell 脚本面试问题及解答: Q:1 Shell脚本是什么. ...

  7. 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

    一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...

  8. Shell脚本的编写及测试

                                                      Shell脚本的编写及测试 1.1问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一 ...

  9. (转)mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写

    一.mysql安装 1.下载mysql数据库源码包: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz 2.安装mys ...

随机推荐

  1. 007_FreeROTS队列

    (一)目的:进程间的通信 (二)队列创建 1. 动态创建队列,函数 xQueueCreate() QueueHandle_t xQueueCreate( UBaseType_t uxQueueLeng ...

  2. 001_项目开源之_STM32激光雕刻机

    我是标题:STM32激光雕刻机(开源免费) (一)首先感谢将离九歌   https://github.com/MaxwellXyao  提供的C8T6/GRBL的源码 (二)本设计开源(免费),请忽倒 ...

  3. DEVICE_ATTR设置设备属性

    DEVICE_ATTR设置设备属性 为了在sysfs下生成可控节点,方便上层调用. sysfs是一个基于RAM的文件系统,它和Kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录 ...

  4. 关于openstack 专业博主地址.后续更新

    首先官方文档要放的 https://docs.openstack.org/ 关于导入镜像方面说的很详细的. https://www.cnblogs.com/liawne/p/9322221.html ...

  5. Robot Framework(十七) 扩展RobotFramework框架——扩展Robot Framework Jar

    4.4扩展Robot Framework Jar 使用标准JDK安装中包含的jar命令,可以非常简单地向Robot Framework jar添加其他测试库或支持代码.Python代码必须放在jar里 ...

  6. msql数据库常用指令操作

    数据库指令 1.数据库指令 创建数据库:create database db_name; 删除数据库:drop database db_name; 显示数据库:show databases: 导出数据 ...

  7. Memcached 之在win10上的安装

    一.下载 http://static.runoob.com/download/memcached-win64-1.4.4-14.zip 二.安装 memcached <1.4.5 版本安装 1. ...

  8. 从TCP到Socket,彻底理解网络编程是怎么回事

    进行程序开发的同学,无论Web前端开发.Web后端开发,还是搜索引擎和大数据,几乎所有的开发领域都会涉及到网络编程.比如我们进行Web服务端开发,除了Web协议本身依赖网络外,通常还需要连接数据库,而 ...

  9. Java ExecutorService四种线程池及自定义ThreadPoolExecutor机制

    一.Java 线程池 Java通过Executors提供四种线程池,分别为:1.newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收 ...

  10. RHSA-2018:3059-低危: X.org X11 安全和BUG修复更新

    修复命令: yum update libXfontyum update libxcbyum update xorg-x11-font-utilsyum update xorg-x11-utilsyum ...