Centos7のインストールとAirflowの展開の詳細

Centos7#でのAirflow(1.10)+ celery + redisのインストール

インストール環境とバージョン##

centos7

Airflow 1.10.6

Python 3.6.8

Mysql 5.6

redis 3.3

インストール##

データベースのインストール###

少し(バイドゥによる)

気流の設置###

vim ~/.bashrc
# 環境変数exportAIRFLOWの行を追加します_HOME=/opt/airflow
source ~/.bashrc
export SLUGIFY_USES_TEXT_UNIDECODE=yes

エアフローをインストールします#

# 構成ファイルを生成します。一部のエラーが報告される場合があります。無視してください。AIRFLOWを確認してください。_HOMEディレクトリの下に生成.cfgおよび関連ドキュメントは、この実行の成功を証明します#pythoの環境変数が構成されている場合は、直接実行します#で構成されていません${PYTHON_HOME}/lib/python3.6/sit-packages/airflow/binディレクトリで実行します`./airflow`

pip install apache-airflow

エアフロー関連の依存関係をインストールします#

pip install'apache-airflow[mysql]'
pip install'apache-airflow[celery]'
pip install'apache-airflow[redis]'

構成##

構成ファイルを変更します###

# sqlalchemyリンク
sql_alchemy_conn = mysql://username:password@localhost:3306/airflow
# アクチュエータを構成する
executor=CeleryExecutor
# セロリブローカーを構成する_url
broker_url = redis://lochost:5379/0
# メタデータ情報管理を構成する
result_backend = db+mysql://username:password@localhost:3306/airflow

ユーザーの作成(ワーカーはルートユーザーの下で実行することはできません)###

# ユーザーグループとユーザーグループを作成し、エアフローを追加します
useradd airflow -g airflow
# 意志{AIRFLOW_HOME}ディレクトリ修復ユーザーグループCD/opt/
chgrp -R airflow airflow

起動##

# フォアグラウンドでWebサービスを開始します
airflow webserver 

# バックグラウンドでWebサービスを開始する
airflow webserver -D

# フォアグラウンドでスケジューラを開始します
airflow schedule

# バックグラウンドでスケジューラを開始する
airflow scheduler -D

ワーカーを開始###

# ワーカーホストは、通常のユーザーでエアフローワーカーを開くだけで済みます#ユーザーairflowuseraddairflowを作成します

# ユーザーテスト用のパスワードpasswdエアフローを設定します

# rootユーザーの下で、airflowフォルダーのアクセス許可を変更し、chmodを完全に開くように設定します-R 777 /opt/airflow

# 通常のユーザーに切り替えて、airflowworkerコマンドを実行します#通常のユーザーが起動時に読んだことがわかりました~/.bashrcファイルに一貫性がなく、AIRFLOWに再参加します_HOMEがやる#新しい通常のユーザーを作成する前に環境変数を構成する場合、この問題は発生しない可能性があります。ユーザーの作成後に環境変数を変更しました。
airflow worker 

worker.png

# ワーカーを実行する前に一時変数を実行します(一時は永続的に使用できません)export C_FORCE_ROOT="true"#ユーザーCDを切り替える必要はありません/usr/local/python3/bin/

# フォアグラウンドでワーカーサービスを開始します
airflow worker

# バックグラウンドで作業サービスを開始します
airflow worker -D

タイムゾーンの変更##

default_timezone = Asia/Shanghai
参照は次のとおりです。
cd /usr/local/lib/python3.6/site-packages/airflow
# utcで= pendulum.timezone(‘UTC’)この行(27行目)コードの下の気流から追加.configuration import conf
try:
	tz = conf.get("core","default_timezone")if tz =="system":
		utc = pendulum.local_timezone()else:
		utc = pendulum.timezone(tz)except Exception:pass#utcnowを変更する()関数(69行目)

元のコードd= dt.datetime.utcnow() 
dに修正= dt.datetime.now()
# utcで= pendulum.timezone(‘UTC’)この行(37行目)コードの下の気流から追加.configuration  import conf
try:
	tz = conf.get("core","default_timezone")if tz =="system":
		utc = pendulum.local_timezone()else:
		utc = pendulum.timezone(tz)except Exception:pass
コードを入力varUTCseconds=(x.getTime()+ x.getTimezoneOffset()*60*1000); 
varUTCsecondsに変更します= x.getTime();

コードを入れて"timeFormat":"H:i:s %UTC%",
に"timeFormat":"H:i:s",

電子メールアラームを構成し、airflow構成ファイルairflow.cfg ##で変更します。

default_args ={
 # メールボックスを受け入れる
 ' email':['[email protected]''],
 # タスクが失敗したときにメールを送信するかどうか
 ' email_on_failure': True,
 # タスクがメールの送信を再試行するかどうか
 ' email_on_retry': False,}

——————————————————————————————————————————————

補足##

タスクを実行すると、一部のタスクが並列になっているときに異常なデータが発生することがわかりました。解決策:###

気流のグローバル変数に設定

DAGにパラメータを追加して、dag全体を制御します

dag =DAG(f"dag_name",
   default_args=default_args,
   schedule_interval="0 12 * * *",
   max_active_runs =1)

各タスクのオペレーターでパラメーターを設定します

t3 =PythonOperator(
 task_id='demo_task',
 provide_context=True,
 python_callable=demo_task,
 task_concurrency=1,
 dag=dag)

エラーがあれば訂正してください#

Recommended Posts

Centos7のインストールとAirflowの展開の詳細
Centos6.5のインストールとKVMの展開
Centos-6.5LNMP環境のインストールと展開
Centos7のインストールとgitlabサーバーの展開
Centos8のOpenStackUssuriの最小限の展開とインストールの詳細なチュートリアル
Centos7によるPHPのインストールとNginxのチュートリアルの詳細
CentOSでのMySQL8.0のインストールと展開、非常に詳細!
Centos7のインストールとJenkinsの構成
CentOS8インストールMariaDB詳細チュートリアル
CentOS7のインストールとGitlabのメンテナンス
CentOs7のインストールと展開Zabbix3.4オリジナル
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
ubuntuDockerのインストールとRancherの展開
CentOSでのMysqlのインストールと使用
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Ubuntu環境でのNginxのインストールと展開
CentOSでのZabbixのインストールと展開およびローカリゼーション
CentOS7でのJenkinsのインストールと展開のチュートリアル
CentOS8のグラフィカルインストール
CentOS7システムでのJDKのインストールと構成
CentOS 6.5システムのインストールと構成のグラフィックチュートリアル(詳細なグラフィック)
CentOS6.5でのrsyncサーバーのインストールと構成
CentOS7 DockerNginxの展開と操作の詳細な説明
CentOS8でのMySQL8.0のインストール、展開、および構成のチュートリアル
Centosでのconfluence6.3操作記録のインストールとクラッキング
Centosmysqlのインストールと構成
Centos7のインストールと構成のプロメテウス
CentOS7のインストールと構成PPTP
centos7へのグラファイトの展開
CentOSのインストールと構成cmake
グラフィカルなcentosインストールの詳細なプロセス
Centos7.5のインストールと構成MongoDB4.0.4
CentOS7のインストールと構成PPTP
centos7kvmのインストールと使用
CentOS7postgresqlのインストールと使用
仮想マシンへのCentOS6.4システムの詳細なインストール手順
DockerのCentOS環境インストール
Centos7elk7.1.1のインストールと使用
CentOS7のインストールとエントリからマスターまでのnginxのメンテナンス
CentOSでの脆弱性スキャンおよび分析ソフトウェアNessusの展開
Hyper-VインストールCentOS8問題の分析
ダメンデータベースチュートリアルのCentos7インストール
ジェンキンス学習のcentos6.9の下でのインストール
CentOS6最小インストールKVM詳細チュートリアル
Centos7hadoopクラスターのインストールと構成
Centos8のインストール図(非常に詳細なチュートリアル)
Centos6ネットワーク構成の詳細な例
CentOS7.Xシステムのインストールと最適化
CentOSでのJava-JDKのインストールと構成
CentOS 7Tomcatサービスのインストールと構成
Centos 7 RAID5の詳細な説明と構成
001.エンタープライズレベルのCentOS7.6オペレーティングシステムのインストール
CentOSNTPサーバーのインストールと構成
フラスコプロジェクトのCentOS展開方法
2-Kubernetesエントリーマニュアルのインストールと展開
JumpServer Bastion Host--CentOS 8のインストールと展開(4)
Centos7mysqlデータベースのインストールと構成
UbuntuでのSubversion(SVN)のクイックインストールと構成の詳細な説明
Ubuntu環境でのSSHのインストールと使用の詳細な説明
2019-07-09CentOS7のインストール
centos7_1708のインストール