airflow 2.x 버전을 설치하여 관리하고 있었는데, 다음과 같은 오류가 발생했다. UnicodeEncodeError: 'charmap' codec can't encode characters in position 217-220: character maps to 실행되기전에 오류가 난것이기 때문에, airflow scheduler 로그에 해당 로그가 남아있었고, 한참 원인을 찾아 헤맸는데 원인은 한글 주석이 영향을 주는것이었다. [2023-02-01 18:23:52,459] {logging_mixin.py:115} INFO - [2023-02-01 18:23:52,459] {dag.py:2968} INFO - Setting next_dagrun for my_test_dag to 2023-02-01T09..
테이블을 생성하려고 했는데 아래와 같이 "HiveAccessControlException Permission denied" 오류가 발생하면서 CREATE 를 실패한다면, 권한관리를 위해서 ranger 를 사용하고 현재 유저는 해당 db 경로에 권한이 없기 때문에 나타나는 현상이다. hive> create table if not exists info.t_user ( ID string comment '[K] 아이디' ,NAME string comment '이름' ,AGE int comment '나이' ,ADDRESS string comment '주소' ) comment '회원정보' stored as ORC tblproperties ("orc.compress"="ZLIB"); Error: Error while..
하둡 클러스터 이전을 위해 ETL 을 등록하는데 이상하게 old 서버에서는 잘되는게, new 서버에서는 너~~무 느린문제가 있었다. 일단 성능개선을 위해 동일한 Hive 버전도 아니었고, 플랜도 다르게 돌아가는 상황이라 답답한 상황이었다. 우선 결론부터 말하면 리듀서가 14~26개 정도가 할당되었는데, JOIN 과 카디널리티가 높은 Group By 였기 때문에 이정도수로는 어림도 없는 수준이었기 때문에 너무 오래걸린 문제였다. ---------------------------------------------------------------------------------------------- VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KI..
beeline 에서 쿼리를 잘 돌리다가 아래와 같은 오류가 발생하는 경우가 있다면 재접속을 해보자. beeline 실행시점에는 문제가 없었다가, HiveServer 가 재기동되거나 해서 세션이 끊긴지 모른상태에서 쿼리를 호출할 경우 아래와 같은 에러메시지를 낼 수 있다. 0: jdbc:hive2://myhive.myDomain.com:2181,p> select count(*) from sample.t_sample where ymd = '2023-02-01' group by hh24mi; Unexpected end of file when reading from HS2 server. The root cause might be too many concurrent connections. Please ask th..
Flink 를 Yarn 에서 동작할때 다음과 같은 메시지를 출력하며 무한 대기하는 상황이 있다. 이런 이유는 보통 컨테이너에서 리소스를 받아서 데몬을 기동해야하는데 받지 못하는 상황이다. 이때 몇가지 상황에 따라 해결방법이 다르다. 2022-11-30 11:31:33,275 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deploying cluster, current state ACCEPTED 2022-11-30 11:32:33,422 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deployment took more than 60 seconds. Please check if the requested re..
참고로 org.mongodb:mongodb-driver-sync:jar:3.8.2 버전을 사용했고, 예제에 있는 코드를 참고하여 연결정보를 만들려고 하는데 희안하게 MongoClientSettings 사용하려고 했는데, 해당 라이브러리를 찾지 못하는 이상한 상황이 생겼다. 특이한점은 SpringBoot 를 이용해서 웹서비스를 제공하고 있는데, 해당 의존성을 올리면 import 못하는 문제가 해결되었다. 하지만, 호환성 문제가 검증안되서 찜찜해서 다른 해결방법을 찾기위해 두 차이가 뭔지 확인해 보았다. - 2.0.9.RELEASE -> 2.1.4.RELEASE import com.mongodb.MongoClientSettings; // builder.hosts(Collections.singletonList..
select 문을 사용할때 특정 필드만 선택할 경우는 필드명을 나열하면 된다. 근데 필드가 어마어마하게 많은데 1개 필드만 제외해서 select 하고 싶은 경우 어떻게 해야할지 고민이 된다. (쉽게 말해서 화이트 리스트로 필드를 골라내는게 아니라, 블랙 리스트로 필드를 골라내고 싶다는말) 예를 들어, 모든 필드를 조회할때는 select * from t_sample_users 로 간소화가 가능하다. 하지만 여기서 tel_num, ymd 만 제외해서 조회하려면 어떻게 해야할까? 가장 기본적인 방법은 아래 방법처럼 필요한 필드를 모두 나열하는 방법이다. (=화이트 리스트 방식) 하지만 필드가 너무 많다면 이건 너무 비효율적이다. 그럼 블랙리스트 방식으로 안쓰는 필드만 발라내는 방법은 어떻게 해야할까??? hi..
DBeaver 는 mac 과 windows 버전 모두 존재하는 DB 툴이라서 애용하는편이다. mysql 8.x 버전대에 접속할때 Public Key Retrieval is not allowed 오류가 일어날때가 있는데, 이를 해결하는 방법이 존재한다. allowPublicKeyRetrieval 을 True 로 변경하면 된다. 해결방법 Main 탭에서는 연결정보를 관리하는데, 그 옆에 Driver properties 탭이 존재하는데, 해당 탭을 클릭하면... 아래와 같이 Driver properties 를 변경할 수 있다. 위와같이 에러난다면 allowPublicKeyRetrieval 값이 False 로 되어있을텐데, 이 값을 True 로 변경하자. 설정이 끝난 후, Test Connection 버튼을 눌..