전체 글 (15) 썸네일형 리스트형 kubernetes 구축 ### 환경- Rocky Linux release 8.10- kubernetes v1.32.3- enp0s3 : 호스트 전용 어댑터- enp0s8 : NAT(10.0.3.15)### 구성- kubernetes-master(Control Plane) 192.168.56.140- kubernetes-worker1 192.168.56.141- kubernetes-worker2 192.168.56.142더보기yum -y update yum install -y yum-utils iproute-tc cat > /etc/hosts 192.168.56.140 kube-master 192.168.56.141 kube-worker1 192.168.56.142 kube-worker2 EOF systemctl stop fir.. Gmarket 데이터 크롤링 ETL(2) - xcom 분기 수정 https://github.com/yeonwoocha앞전에 작성했던 부분에 추가할 부분이 현재는 dag를 하나로 돌린다.하지만 gmarket 페이지의 전체 베스트상품들 카테고리를 보면 2,30개 정도가 된다. 이 dag들을 한개식 잡으면 dag관리가 안될것 같아, 큰 카테고리씩 dag로 잡아서 진행1. 전체 : all.dag2. 신선식품: fresh.dag3. 가공식품: frozen.dag... 전체 카테고리제외 하위 카테고리들 존재 => dummyoperator 활용 하나의 dag에 여러개의 분기로 그룹화 실행되게 적용.def category(group_name, sub_group_name, **context): ... ... ti = context['ti'] # 한 dag에 .. Gmarket 데이터 크롤링 ETL(1) - airflow, hadoop 1. Airflow가 주기적으로 gmarket Best상품 크롤링2. 크롤링한 데이터 Hadoop에 저장3. spark를 이용해서 Hadoop에 저장된 데이터 분석-> 자원이 마땅치 않다보니, 도커로 구성 생각중... 최종 목표 :분석한 데이터를 DB에 저장해서 Fast-API로 데이터 서빙까지https://github.com/yeonwoocha/crawling-gmarket.git 기존에 공부한다고 작성한 코드인데, 이 코드를 airflow dag형식으로 바꿔서 진행기존 위의 코드를 window에서 실행하였는데, 지금 환경은 리눅스에서 진행하다 보니 삽집을 많이 하였다.제일 삽질 많이 한게 리눅스에서 selenium 환경 세팅이었고, 두번째가 airflow 로그 세팅이었다.일단 selenium으로 크롤.. Side-Project-kaggle data ETL(2) sink-connector 첫번째로 같은 MySQL DB 스키마내에 다른 테이블에 적용현재 Mysql test 데이터베이스 스키마안에 test라는 테이블에 4개의 row가 들어가있습니다.첫번째로 bulk모드로 진행해보도록 하겠습니다.connector 등록은 완료하였습니다.connector 정보를 확인하기 위해서 명령을 날리도록 하겠습니다.connector랑 tasks가 둘다 "running"으로 되있는것을 확인할 수 있습니다. 이제 broker에도 생겼는지 확인해보겠습니다. 과연.... broker에도 적용된거 확인그럼 브로커에 쌓인 메세지들을 target지에 넣어보겠습니다.테스트로 차례대로 진행할 목적으로 일단 첫번째로 같은 DB서버내에 다른 테이블에 적용해보도록 하겠습니다.target 정보입니다. 이제 connector를 붙이.. Side-Project-kaggle data ETL(1) source-connector API를 활용하여 kaggle에서 titanic 데이터를 받아옴Python으로 pandas를 사용하여 csv파일을 source DB인 MySQL DB에 적재Kafka Connector서버에서 jdbc source connector를 활용 DB에 있는 데이터들을 Kafka broker에서 수집Kafka Connector서버에서 jdbc sink connector를 사용하여 Target DB에 적재.import pandas as pdfrom sqlalchemy import create_engine, textimport osimport csvimport glob////MySQL 데이터베이스 연결 설정//DB 정보 입력engine = create_engine('{드라이버이름}://{유저이름}:{password}.. Airflow-Local-Executor 설치 ### 환경- Rocky Linux release 8.10- python 3.11.10- airflow 2.7.3- postgresql 14### 구성- airflow-master 192.168.56.111 wget https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tar.xztar -xvf Python-3.11.10.tar.xzsudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel sqlite sqlite-devel epel-releasesudo yum groupinstall 'Development Tools'sudo yum install python3-psycopg2 post.. Hadoop Cluster 구축 ### 환경- Rocky Linux release 8.10- hadoop 3.2.4- jdk 1.8### 구성- hadoop-master 192.168.56.114- hadoop-worker1 192.168.56.115- hadoop-worker2 192.168.56.116- hadoop-worker3 192.168.56.117 ### 사전 작업- java(jdk) 설치 및 JAVA_HOME 설정- hadoop 클러스터 노드들 ssh 설정 Hadoop-Mastercore-site.xml- 코어 설정(기본 파일시스템, 임시 디렉터리)더보기 fs.defaultFS hdfs://hadoop-master:9000 hadoop.tmp.dir /data/hadoop/tmp .. Redis-Sentinel + Keepalived(3) 최종 구성은 위 사진과 같이 구성하였다.### 환경- Rocky Linux release 8.10### 구성- VIP 192.168.56.182- redis-master 192.168.56.180- redis-master 192.168.56.181- redis-sentinel #1 192.168.56.180:26379- redis-sentinel #2 192.168.56.181:26379- redis-sentinel #3 192.168.56.181:26379 vip를 추가한 이유는 redis에 데이터를 저장하는 서버가 있다고 가정했을때, master ip(192.168.56.180)로 통신을 진행하다 failover가 일어났을 경우 개발자가 바뀐 IP로 바꿔줘야하는 번거로움이 있다.그래서 이 부분을 vi.. 이전 1 2 다음