전체 글(424)
-
[Spark] history server 장애
새벽에 갑자기 namenode가 내려갔다는 장애 알림 메시지를 받게 됨!!! 일단 일어나서 부랴부랴 네임노드를 다시 재 시작해주고.. (다행히 ha 설정이 되어 있어서 서비스 상에서는 문제가 없었음) 자세히 왜 내려 갔는지 문제점을 파악하기 시작!! 일단 문제가 발생한 원인은 아래의 그래프에서 찾을 수 있었다. 바로바로 과도한 cpu 사용으로 인한 namenode shutdown 저렇게 과도하게 cpu를 먹고 있는게 과연 무엇을까 서버 접속해서 top를 쳐본 결과 spark history server에서 2000% 넘게 cpu를 사용하고 있는 걸 확인했다. 왜 history server가 2000%를 먹고 있는지 확인해 보기 위해 hdfs에 있는 history log list를 확인하려고 접근하려는 순..
2025.04.14 -
rocky8 서버에 nfs 공유 볼륨 구성하기
$ sudo rpcbind start대상 os : rocky8서버 host : test-server1, test-server2, test-server3 test-server1을 nfs-server로 설정하고, test-server2, test-server3을 nfs-client로 구성하고자 한다. nfs-server 구성하기test-server1에 대해 nfs-server를 구성한다.아래와 같이 yum update를 진행한 후 rpcbind와 nfs library를 설치 하자.$ sudo yum update$ sudo yum install rpcbind nfs* /etc/exports에 아래의 형태로 공유하고자 하는 볼륨 정보를 기입해 준다. 공유 볼륨 기입 전에 공유하고자 하는 폴더는 미리 생성해 주도..
2025.03.06 -
airflow hdfs provider 설치하기
airflow에서 hdfs를 깔끔하게 접근하는 방법이 없을까 고민하다가 airflow provider란 걸 발견했다.airflow provider는 aws나 azure, google cloud 등을 airflow에서 좀 더 쉽게 연결해 줄 수 있도록 제공해주는 plugin이라고 생각하면 쉬울 것 같다. 일단 내가 설치한 airflow 환경에서 hdfs provider가 있는지 여부부터 살펴 보자.airflow UI에서 admin 클릭하면 현재 airflow에서 제공되는 provider의 목록들이 나타난다. 불행하게도 hdfs 관련된 provider는 보이지 않는다.그럼 이제 hdfs provider를 직접 설치해 보도록 하자. 설치를 하기 위해서는 airflow Docker 이미지의 customize..
2024.08.21 -
pyMysql에서 collation과 useSSL 적용하기
Mysql 8.0 으로 업그레이드를 진행하면서, default 값으로 사용하던 collation과 useSSL을 명시적으로 선언해야 할 필요가 있었다.그래서 아래와 같은 요청을 받게 되었다. jdbc:mysql://localhost:3306/schema?connectionCollation=utf8mb4_unicode_ci&useSSL=false 나의 경우 SQLAlchemy + pyMySQL을 사용하고 있었기 때문에 아래와 같이 db url을 수정하고 테스트를 진행했다. mysql+pymysql://localhost:3306/schema?connectionCollation=utf8mb4_unicode_ci&useSSL=false 하지만 아래와 같은 에러가 발생!! unexpected keyword arg..
2024.08.20 -
spark 모르는 옵션 정리
spark.task.maxFailurestask의 실패 최대 횟수 (default 4)spark.stage.maxConsecutiveAttempts노드 scale 조정, 트리거로 인한 노드 종료 등의 이유로 stage가 실패하게 되면 설정된 count 만큼 허용한다.예를 들어 작업 중 어떤 한 노드를 강제 종료하게 되면 task 실패 횟수에 1이 추가되는게 아니라 maxCounsecutiveAttempts에 1이 추가가 된다. 설정된 값만큼의 실패 예외를 허용해 준다.spark.shuffle.file.buffershuffle 시 파일 출력 스트림 버퍼 크기 spark.sql.files.maxPartitionBytesinput partition의 크기를 설정한다. (default 128mb (1342177..
2024.06.21 -
k8s nodeSelector와 node label 설정하기
k8s에서 pod를 deployment할 때 특정 노드를 지정해서 내가 원하는 pod를 설치할 수가 있다.(나같은 경우에는 특정 노드를 선택해 해당 노드에는 redis pod만 띄우도록 설정해 놓고 있다.) 일단 특정 노드를 선택하기 위해서는 해당 노드에 label을 지정해 주어야 한다.우선 아래의 명령어를 통해 내가 가진 node들이 현재 어떤 label이 지정되어 있는지를 확인할 수 있다. $> kubectl get nodes --show-labels label 확인이 완료되었으면 특정 노드에 label을 명시하는 것도 가능하다. $> kubectl label node [node 이름] name=redis 나같은 경우에는 특정 node에 name을 redis로 지정해 주었다.이렇게 지정된 label은..
2024.05.28