일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정규표현식
- NoSQL
- hadoop
- Namenode
- LDAP
- python
- ambari
- airflow
- docker
- Lambda architecture
- Kafka
- 람다 아키텍처
- slack app
- Windows
- jupyter
- yarn
- 빅데이터
- slack
- HIVE
- Scala
- Example DAG
- Service
- HDFS
- HBase
- java
- HDP
- MapReduce
- SlackWebhookOperator
- re
- execution_date
- Today
- Total
IT 삽질기
Airflow HiveServer2Hook LDAP 연결 본문
HiveServer2 인증 방법으로 LDAP을 사용하는 경우
Airflow HiveServer2Hook를 사용해 hive에 query을 날리는 방법에 대해서 알아보도록 하자
Airflow의 버전은 2.0.0을 사용했다.
먼저 Airflow의 HiveServer2Hook의 코드를 살펴보도록 하자
코드에서 살펴봐야 할 부분은 인증방식에 대한 부분과 connection을 만드는 과정이다.
먼저 인증 방식을 설정하기 위해서는 829번 line의 코드를 살펴봐야 한다
auth_mechanism으로 connection에 있는 authMechanism의 데이터를 이용한다
우리는 LDAP을 이용할 것이기 때문에 LDAP 부분을 확인하고 인증을 위해 password까지 필요한 것을 확인하면 된다
다음으로 확인할 부분은 return으로 pyhive의 connect인데 이 부분에서 오류가 발생할 수 있다
pyhive에서 SASL 관련 에러가 발생하는 경우 이전 글을 확인해보자
2021.04.22 - [개발/python] - pyHive Hive LDAP SASL error
이제 HiveServer2 연결을 위한 Connection을 만들어보자
Conn Type는 Hive Server 2 Thrift로 설정하고,
코드에서 확인한대로 authMechanism을 LDAP로 설정하기 위해 Extra에 해당 내용을 추가한다
{"authMechanism":"LDAP"}
이제 HiveServer2Hook을 사용하는 dag를 만들어보자
github.com/dydwnsekd/airflow_example/blob/main/dags/HiveServer2Hook_auth_LDAP.py
from airflow import DAG
from datetime import datetime, timedelta
from airflow.providers.apache.hive.hooks.hive import *
from airflow.operators.python_operator import PythonOperator
default_args = {
'start_date': days_ago(1),
'retries': 0,
'catchup': False,
'retry_delay': timedelta(minutes=5),
}
def simple_query():
hql = "SELECT * FROM airflow LIMIT 10"
hm = HiveServer2Hook(hiveserver2_conn_id = 'HiveServer2_test')
result = hm.get_records(hql, "db_name")
print(result)
for i in result:
print(i)
dag = DAG(
'hivehook_test',
default_args=default_args,
scheduler_interval="@once",
)
t1 = PythonOperator(
task_id = 'HiveServer2Hook_test',
python_callable=simple_query,
dag=dag,
)
이제 실행을 시켜보자
결과로는 아래와 같이 data1, data2 로 동일한 데이터가 2 row 나왔다
실제 Hive에 저장된 데이터도 아래와 같다
이렇게 Airflow HiveServer2Hook를 사용해 Hive LDAP인증방식에 접근하는 방법을 알아보았다.
다음 글에서는 HiveOperator을 사용해 Hive에 접근해보도록 하자
'BigData > Airflow' 카테고리의 다른 글
Airflow 2.0 설치하기(4) (0) | 2021.05.03 |
---|---|
Airflow HiveOperator LDAP 연결 (0) | 2021.04.27 |
Airflow2.x providers 설치하기 (0) | 2021.04.03 |
Airflow 2.0 설치하기(3) (0) | 2021.03.21 |
Airflow 2.0 설치하기(2) (0) | 2021.01.29 |