Начало работы с Азкабаном

задняя часть MySQL сервер SQL

Azkaban — это планировщик задач пакетного рабочего процесса с открытым исходным кодом от Linkedin. Используется для запуска набора заданий и процессов в определенном порядке в рамках рабочего процесса. Azkaban определяет формат файла KV для установления зависимостей между задачами и предоставляет простой в использовании веб-интерфейс пользователя для поддержки и отслеживания вашего рабочего процесса.

1. Установка

Готов к работе

azkaban-web-server-2.5.0.tar.gz azkaban-executor-server-2.5.0.tar.gz azkaban-sql-script-2.5.0.tar.gz

в,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-скрипт.

2. mysql создать таблицу

Разархивируйте и установите их отдельно. Нам также нужно создать базу данных в mysql, а затем запустить сценарий sql, предоставленный azkaban, для создания таблиц, необходимых для azkaban.

mysql -uroot -p
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/fantj/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;
mysql> show tables;
+------------------------+
| Tables_in_azkaban      |
+------------------------+
| active_executing_flows |
| active_sla             |
| execution_flows        |
| execution_jobs         |
| execution_logs         |
| project_events         |
| project_files          |
| project_flows          |
| project_permissions    |
| project_properties     |
| project_versions       |
| projects               |
| properties             |
| schedules              |
| triggers               |
+------------------------+
15 rows in set (0.00 sec)

3. Создайте конфигурацию SSL

1. Выполните командуkeytool -keystore keystore -alias jetty -genkey -keyalg RSAсоздаст файл в текущем каталогеkeystoreФайл сертификата, конечно же, эта команда требуется для заполнения некоторой информации, такой как ваше имя + рабочая единица. Следуйте инструкциям.
2. Затем скопируйте хранилище ключей в каталог bin веб-сервера azkaban.

4. Настройте часовой пояс

[root@s166 azkaban]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan		  18) Israel		    35) Palestine
 2) Armenia		  19) Japan		    36) Philippines
 3) Azerbaijan		  20) Jordan		    37) Qatar
 4) Bahrain		  21) Kazakhstan	    38) Russia
 5) Bangladesh		  22) Korea (North)	    39) Saudi Arabia
 6) Bhutan		  23) Korea (South)	    40) Singapore
 7) Brunei		  24) Kuwait		    41) Sri Lanka
 8) Cambodia		  25) Kyrgyzstan	    42) Syria
 9) China		  26) Laos		    43) Taiwan
10) Cyprus		  27) Lebanon		    44) Tajikistan
11) East Timor		  28) Macau		    45) Thailand
12) Georgia		  29) Malaysia		    46) Turkmenistan
13) Hong Kong		  30) Mongolia		    47) United Arab Emirates
14) India		  31) Myanmar (Burma)	    48) Uzbekistan
15) Indonesia		  32) Nepal		    49) Vietnam
16) Iran		  33) Oman		    50) Yemen
17) Iraq		  34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

	China
	Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:	Sat Jul 28 18:29:58 CST 2018.
Universal Time is now:	Sat Jul 28 10:29:58 UTC 2018.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
	TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

Эту конфигурацию необходимо установить для каждого хоста в кластере, поскольку планирование задач неотделимо от точного времени. Мы также можем напрямую копировать связанные файлы на другие хосты для перезаписи.

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@s166 azkaban]# scp /usr/share/zoneinfo/Asia/Shanghai  root@s168:/etc/localtime
Shanghai                                                                                              100%  388   500.8KB/s   00:00    
[root@s166 azkaban]# scp /usr/share/zoneinfo/Asia/Shanghai  root@s169:/etc/localtime
Shanghai   

5. Измените конфигурацию

5.1 Изменить конфигурацию сервера
5.1.1 /webserver/confв каталогеazkaban.properties(ранее я переименовал распакованный файл на стороне сервера в веб-сервер)
#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=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
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=jiaoroot
jetty.keypassword=jiaoroot
jetty.truststore=keystore
jetty.trustpassword=jiaoroot

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.sender=844072586@qq.com
mail.host=smtp.qq.com
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache

В основном измените часовой пояс + конфигурацию mysql + пароль SSL и путь к файлу + конфигурацию почтового ящика. Не оставляйте комментарии, вы можете понять с первого взгляда.

5.1.2 Модификация/conf/в каталоге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">
        
        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
</azkaban-users>
5.2 Выполните настройку сервера

Исправлять/executor/confв каталогеazkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

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

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

6. Выполнить

6.1 Запустите веб-сервер

существуетwebserver/binкаталог, выполнить[root@s166 webserver]# nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &Запустите службу.

Совет: не забудьте сначала использовать nohup для выполнения, иначе отчет об ошибке не сможет дать своевременную обратную связь.Попробуйте выполнить его с помощью nohup после попытки выполнить его.[root@s166 executor]# bin/azkaban-executor-start.sh

Некоторые из ошибок, которые я, вероятно, видел:

  1. Нет файла хранилища ключей в каталоге /bin/ ------ нужно скопировать в bin
  2. ----- Не могу найти множество конфигурационных файлов, чтобы настроить к этим файлам абсолютный путь в конфигурационном файле.
6.2 Запустите исполняющий сервер

существует/executor/bin/Выполнить в каталоге[root@s166 webserver]# bin/azkaban-web-start.sh

6.3 Доступ через браузерhttps://s166:8443/

Если вы видите такой экран, это доказывает, что вы ошибаетесь.Вместо того, чтобы выполнять его в корневом каталоге, он обычно выполняет файл запуска в каталоге bin, поэтому многие из его CSS не могут быть загружены.

这才是正确的打开方式

Войдите в систему с установленным паролем учетной записи.

7. Азкабан в действии

7.1 Пример отдельного задания
  1. Создать файл описания вакансии
vim command.job

#command.job
type=command                                                    
command=echo fantj666
  1. Упакуйте файлы ресурсов задания в zip-файлы zip command.job

  2. Создайте проект через веб-платформу управления azkaban и загрузите сжатый пакет задания. Сначала создайте проект

    创建工程
    上传文件
    执行日志

7.2 Рабочий процесс с несколькими заданиями
  1. Создание нескольких описаний вакансий с зависимостями Первая работа: foo.job
# foo.job
type=command
command=echo foo

Вторая работа: BAR.JOB зависит от Foo.job

# bar.job
type=command
dependencies=foo
command=echo bar
  1. Поместите все файлы ресурсов задания в zip-архив.
  2. Загрузите zip-пакет и начните
  3. Просмотр журнала заданий
    job list
    foo job log
    bar job log
7.3 Работа с хаупом
  1. vim fs.job
# fs.job
type=command
command=/home/fantj/hadoop/bin/hadoop fs -lsr /
  1. Упаковано в виде zip-файла
  2. Запустите задание и просмотрите лоб
7.4 Рабочий улей

скрипт ульяtest.sql

use default;
drop table aztest;
create table aztest(id int,name string,age int) row format delimited fields terminated by ',' ;
load data inpath '/aztest/hiveinput' into table aztest;
create table azres as select * from aztest;
insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest; 

файл заданияhivef.job

# hivef.job
type=command
command=/home/fantj/hive/bin/hive -f 'test.sql'

zip пакет - загрузить - выполнить - проверить журнал