MySQL 은 별도로 세팅되서 운영중이더라도, 연결이 가능한지 여부를 테스트하기위한 client 세팅을 해야할때가 있다. 이때 가장 쉬운편에 속하는게 mysql 패키지를 설치하고 원격접속해서 테스트해보는것이다. 보통은 DBMS 서버에 직접 붙어서 연결하기 때문에 파라미터를 잘 모를때가 많은데 원격 접속할때는 다음과 같이 접근하면 된다. 디폴트 포트가 3306인데, 디폴트 포트라면 --port 인자는 생략가능하다 % mysql -h 도메인주소 --port 포트번호 -u 아이디 -p 설치하기 단순히 MySQL 에 접근하더라도 mysql 패키지가 필요하다. 다음과 같은 명령어로 설치가 가능하다. sudo yum install mysql -y 연결해보기 설치가 되었으면 mysql 명령어 사용이 가능하며 다음과 ..
airflow.cfg 의 dbms 연결설정의 경우 아래와 같은 패턴으로 입력을 해야하는데, 문제는 암호에 @ 가 존재해서 도메인을 잘못 판단하는 문제가 발생했다. 구글링 해보면 python 코드를 통해 해결하거나, "@" 를 "%40" 형태로 치환하면 된다고 하는데, 그렇게 해결이 안되었다. 그 문제는 configparser 에서 "%" 가 또 영향을 받기 때문이었다. sql_alchemy_conn = mysql+mysqldb://:@:/airflow_db?charset=utf8 해결방법 결론부터 말하면 @ 는 %%40 으로 대체해야 설정이 정상적으로 인지된다. urllib 의 quote 로 변환한 결과가 %40 인데, configparser 에서는 또 % 를 추가로 이스케입해줘야 하는 문제가 있기 때문..
내 mac pro 에서 airflow 2.x 버전대를 빌드하면서 compile assets 를 이용한 ui 빌드를 시도하는데 다음과 같은 오류가 발생했다. 결론부터 말하면 mac 에 md5sum 바이너리가 없어서 실패난 현상이었다. (airflow) user@AL0000001 airflow % python setup.py compile_assets gitpython not found: Cannot compute the git version. /Users/user/.virtualenvs/airflow/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprec..
Airflow 2.x 버전을 띄우려고 했는데 아래와 같은오류가 발생했다. 결론부터 말하면 sqlite 의 의존성이 3.15 보다 버전이 더 커야 작동된다는말인데, centos 의 yum 을 통해 설치 가능한 버전은 sqlite는 3.7.17 버전이 가장 최신이다. 그래서 더 상위버전으로 업데이트해야 동작한다는 말이다. 해결방법은 소스를 다운로드 받아서 빌드하면 쉽게 해결된다. $ airflow standalone Traceback (most recent call last): File "/home/airflow/py3/bin/airflow", line 5, in from airflow.__main__ import main File "/home/airflow/py3/lib/python3.9/site-pack..
DAG 를 만들었는데, 로직이 로딩되지 않았고, 로그를 뒤져보니 아래와 같은 오류가 발생했다. 오류가 나는 현상을 역추적해보니 dag 를 구성한 python 로직에 한글주석이 존재할 경우 아래와 같은 오류가 발생함을 발견했다. UnicodeEncodeError: 'charmap' codec can't encode characters in position 217-220: character maps to [2023-02-01 18:23:52,445] {logging_mixin.py:115} INFO - [2023-02-01 18:23:52,445] {dag.py:2439} INFO - Creating ORM DAG for my_test_dag [2023-02-01 18:23:52,459] {logging_m..
커버로스 기반으로 하둡 클러스터를 관리하고 유저권한을 keytab 으로 관리하다보면, 별도의 유저별로 바꿔서 실행해야 하는 경우가 종종 있다. 그런데 이상하게 아래와 같은 오류가 발생할 때가 있는데, 원인은 HADOOP_PROXY_USER 를 사용하지 않는 상황인데, 해당 값이 지정된 경우 발생된다. % hadoop fs -ls ls: User: flink@MY.HOME.SERVER.COM is not allowed to impersonate sample 해결방법 권한관리를 하다보면, 여러케이스의 유저권한이 존재할 수 있는데, 유저 여러개의 권한을 하나에 부여하고, HADOOP_PROXY_USER 를 지정해서 유저를 지정해서 해당 권한으로 사용하는게 가능하다. 일종의 슈퍼키(?) 처럼 큰 권한을 받은 녀..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cnbVkx/btr20xvDf43/paPQn0on7X3LPNFSEmE3K1/img.png)
하둡에서 권한관리가 되어있을때 나타나는 문제이다. 다음과 같이 hive catalog 를 등록하려고 했는데 다음과 같은 오류가 발생한다. 참고로 커버로스 인증으로 구성된 하둡 클러스터 환경에서 flink 유저를 만들어서 사용한 케이스이고, 원인은 Ranger 에서 flink 유저는 hive 의 warehouse 패스의 hdfs 접근이 제한되어있기 때문에 나타나는 현상이다. Flink SQL> create catalog myHive with( 'type' = 'hive' , 'hive-conf-dir' = '/usr/hdp/3.3.0/hive/conf'); [ERROR] Could not execute SQL statement. Reason: org.apache.hadoop.hive.metastore.ap..
kerberos 인증을 위한 정보는 기본적으로는 /etc/krb5.conf 가 기본경로로 되어있다. 하지만, 경우에 따라서는 이 파일을 변경하지 않고 임의로 지정하여 실행해야 하는 경우가 생긴다. 이때 hadoop 명령어 실행시 관련 경로를 지키지 않았을경우 다음과 같은 오류가 발생된다. # ----------------------------------------------- # 커버로스 인증 (krb.conf 가 별도의 경로에 있음을 인지하자) # ----------------------------------------------- % export KEYTAB_PATH=/Users/myUser/hadoop3/keytab % export KRB5_CONFIG=/Users/myUser/hadoop3/key..