diff --git a/notes/installation/Azkaban 3.x 编译及部署.md b/notes/installation/Azkaban 3.x 编译及部署.md new file mode 100644 index 0000000..d857a88 --- /dev/null +++ b/notes/installation/Azkaban 3.x 编译及部署.md @@ -0,0 +1,129 @@ +# Azkaban 3.x 编译及部署 + + + + +## 一、Azkaban 编译 + +### 1.1 下载并解压 + +Azkaban 在3.0版本之后就不提供对应的安装包,需要我们下载源码自行编译。 + +下载所需版本的Azkaban源码,Azkaban的源码托管在GitHub上,Github地址为https://github.com/azkaban/azkaban,可以使用`git clone`的方式获取源码,也可以使用`wget`直接下载对应elease版本的`tar.gz`文件,这里我采用第二种方式: + +```shell +# 下载 +wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz +# 解压 +tar -zxvf azkaban-3.70.0.tar.gz +``` + +### 1.2 准备编译环境 + +#### 1. JDK + +Azkaban 编译依赖JDK 1.8+ ,JDK安装方式见本仓库: + +> [Linux环境下JDK安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md) + +#### 2. Gradle + +Azkaban 3.70.0编译需要依赖`gradle-4.6-all.zip`, 简单介绍一下,Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,类似于Maven,但是由于采用Groovy语言进行项目配置,所以比Maven更为灵活,目前广泛用于Android开发、Spring项目构建。 + +需要注意的是不同版本的Azkaban依赖Gradle版本不同,可以在解压后的`/gradle/wrapper/gradle-wrapper.properties`文件查看 + +
+ +默认情况下,会去图中指定的地址下载,但是下载速度很慢,故建议先下载至`/gradle/wrapper/`目录下 + +```shell +# wget https://services.gradle.org/distributions/gradle-4.6-all.zip +``` + +然后修改配置文件`gradle-wrapper.properties`中的`distributionUrl`属性,指明使用本地的gradle编译 + +
+ +#### 3. Git + +Azkaban 的编译过程中用到Git下载部分需要的Jar包的,所以需要预先安装Git + +```shell +# yum install git +``` + +### 1.3 项目编译 + +在的根目录下执行编译命令,编译成功后会有`BUILD SUCCESSFUL`的提示。 + +```shell +# ./gradlew build installDist -x test +``` + +编译过程中需要注意以下问题: + ++ 因为编译的过程需要下载大量的Jar包,下载速度根据网络情况而定,通常都不会很快,如果网络不好,耗费半个小时,一个小时都是很正常的; ++ 编译过程中如果出现网络问题而导致JAR无法下载,编译可能会被强行终止,这时候重复执行编译命令即可,gradle会把已经下载的JAR存储到本地,所以不用担心会重复下载JAR包。 + + + +## 二、Azkaban 部署模式介绍 + +>After version 3.0, we provide two modes: the stand alone “solo-server” mode and distributed multiple-executor mode. The following describes thedifferences between the two modes. + +按照官方文档的说明,Azkaban 3.x 之后版本提供2种运行模式: + ++ solo server model(单服务模式):元数据默认存放在内置的H2数据库(也可以修改为MYSQL),该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。该模式适用于小规模的使用。 + ++ multiple-executor(分布式多服务模式):存放元数据的数据库为MYSQL,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响,适合用于生产环境。 + + + +## 三 、Solo Server 模式部署 + +### 2.1 解压 + +Solo Server 模式安装包在编译后的`/azkaban-solo-server/build/distributions`目录下,找到后进行解压即可 + +```shell +# 解压 +tar -zxvf azkaban-solo-server-3.70.0.tar.gz +``` + +### 2.2 修改时区 + +这一步不是必须的。但是因为Azkaban默认采用的时区是`America/Los_Angeles`,如果你的调度任务中有定时任务的话,就需要进行相应的更改,这里我更改为更为常用的`Asia/shanghai` + +
+ +### 2.3 启动 + +执行启动命令,需要注意的是一定要在根目录下执行,不能进入`bin`目录下执行,不然会抛出`Cannot find 'database.properties'`异常。 + +```shell +# bin/start-solo.sh +``` + +### 2.4 验证 + +验证方式一:JPS 查看是否有`AzkabanSingleServer`进程 + +
+ +验证方式二:访问8081端口,查看Web UI界面,默认的登录名密码都是azkaban,如果需要修改或新增,则在`conf/azkaban-users.xml `文件中进行配置 + +
+ + + diff --git a/notes/installation/Linux下Flume的安装.md b/notes/installation/Linux下Flume的安装.md new file mode 100644 index 0000000..6530348 --- /dev/null +++ b/notes/installation/Linux下Flume的安装.md @@ -0,0 +1,68 @@ +# Linux下Flume的安装 + + +## 一、前置条件 + +Flume需要依赖JDK环境,JDK安装方式见本仓库: + +> [Linux环境下JDK安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md) + + + +## 二 、安装步骤 + +### 2.1 下载并解压 + +下载所需版本的Flume,这里我下载的是`cdh5.15.2`版本的Flume。下载地址为:http://archive.cloudera.com/cdh5/cdh/5/ + +```shell +# 下载后进行解压 +tar -zxvf flume-ng-1.6.0-cdh5.15.2.tar.gz +``` + +### 2.2 配置环境变量 + +```shell +# vim /etc/profile +``` + +添加环境变量: + +```shell +export FLUME_HOME=/usr/app/apache-flume-1.6.0-cdh5.15.2-bin +export PATH=$FLUME_HOME/bin:$PATH +``` + +使得配置的环境变量立即生效: + +```shell +# source /etc/profile +``` + +### 2.3 修改配置 + +进入安装目录下的`conf/`目录,拷贝flume的环境配置模板`flume-env.sh.template` + +```shell +# cp flume-env.sh.template flume-env.sh +``` + +修改安装目录下的`flume-env.sh`,指定JDK的安装路径: + +```shell +# Enviroment variables can be set here. +export JAVA_HOME=/usr/java/jdk1.8.0_201 +``` + +### 2.4 验证 + +由于已经将Flume的bin目录配置到环境变量,直接使用以下命令验证是否配置成功 + +```shell +# flume-ng version +``` + +出现对应的版本信息则代表配置成功 + +![flume-version](D:\BigData-Notes\pictures\flume-version.png) + diff --git a/pictures/akaban-jps.png b/pictures/akaban-jps.png new file mode 100644 index 0000000..c5acfa1 Binary files /dev/null and b/pictures/akaban-jps.png differ diff --git a/pictures/azkaban-gradle-wrapper-2.png b/pictures/azkaban-gradle-wrapper-2.png new file mode 100644 index 0000000..9f05468 Binary files /dev/null and b/pictures/azkaban-gradle-wrapper-2.png differ diff --git a/pictures/azkaban-gradle-wrapper.png b/pictures/azkaban-gradle-wrapper.png new file mode 100644 index 0000000..f3ef0cd Binary files /dev/null and b/pictures/azkaban-gradle-wrapper.png differ diff --git a/pictures/azkaban-setting.png b/pictures/azkaban-setting.png new file mode 100644 index 0000000..2803ade Binary files /dev/null and b/pictures/azkaban-setting.png differ diff --git a/pictures/azkaban-web-ui.png b/pictures/azkaban-web-ui.png new file mode 100644 index 0000000..5db1ce4 Binary files /dev/null and b/pictures/azkaban-web-ui.png differ diff --git a/pictures/flume-version.png b/pictures/flume-version.png new file mode 100644 index 0000000..2a8e6ea Binary files /dev/null and b/pictures/flume-version.png differ