전체 글
-
Airflow 설치 - AWS에서 airflow 설치하기Data engineering/Airflow 2023. 8. 22. 22:48
필자는 AWS의 EC2 서버를 만든 기념으로 aws에서도 airflow를 설치하고 진행해보려 한다. 설치 및 웹페이지를 보는데 꼬박 3일이 걸렸다. 왜냐하면 port열어 주는 것과 가상 환경의 부재의 콜라보로 인해,, 많은 오류를 만났기 때문이다. 1. 권한 오류 - sudo 혹은 root 권한이 없어서 설치 및 수행에 시간이 걸렸다. 특히, virtulenv 설치 및 설정에도 필요함 2. 버전 오류 - python3 버전으로 인해, python을 찾지 못한 경우가 많았다. 이때는 파이썬 버전 고정 및 path 지정이 중요하다. 필자의 경우 -> 아래와 같이 경로, 버전 등등을 고정해주었다. export PYTHON_VERSION="$(python3 --version | cut -d " " -f 2 | ..
-
공룡책 이용하여 운영체제 공부하기 - 12 (process 에서의 운영)운영체제-공룡책 2023. 8. 22. 21:16
■ OS는 반드시 매커니즘을 가져야 한다. (아래와 같은 경우) - process를 만들 때 - process가 끝났을 때 ■ process는 몇몇 새로운 프로세스들을 만들것 - 만들어 지고 있는 프로세스 : 현재 프로세스 - 새로 만들어진 프로세스 : child process(자식 프로세스) 전형적인 리눅스 시스템에서의 프로세스 트리 ■ 실행을 위한 두개의 가능성에 대하여 - 부모는 children과 함께 동시적으로 수행하는 것을 지속한다. - 부모는 몇몇 혹은 전체 children이 종료할 때 까지 기다린다. ■ address- space(주소 공간) 에 대한 2가지 가능성 - child 프로세스(하위 프로세스) 는 부모 프로세스의 복제이다. - child 프로세스는 새로운 프로그램이 로드 된다. ◆..
-
crontab 이용하여 공공 api 데이터를 빅쿼리에 적재Data engineering/Batch&Pipeline 2023. 8. 21. 21:57
필자는 aws에 공공 api 를 이용하여 데이터를 전처리 -> 빅쿼리 적재 까지 완료 하였으나, 배치 관련해서 계속 테스트 중이었다. 어제, 오늘 crontab 설정 준비 및 테스트를 하였고, 드디어 오늘 배치를 실행하여 빅쿼리 적재에 성공하였다. 먼저 배포 후 간과하지 않아야 할 것은 1. .env 파일 및 service key를 꼭 넣어 줄것 2. 환경 변수 설정 신경 쓸것! 위 2가지만 주의 한다면 서버에서 배치가 잘 실행 될 것이다! 그리고 로그 확인 및 빅쿼리를 확인하여 볼 수 있다. 적재 시작 뒤, 빅쿼리의 query_job이 잘 생성되었는지 print 한 것이 잘 나와 있었다. -> 보통 error가 발생하면 cronlog.txt에서 확인 할 수 있는데 확인 되지 않았다! -> 성공 그리고 ..
-
AWS에 배치를 만들기 위한 작업 3 - crontab 작성 및 로그 확인AWS 2023. 8. 21. 20:37
필자는 crontab을 이용하여 배치를 하기 위해 crontab -e 를 이용하여 명령어를 작성하였다. 테스트를 위해 매분으로 설정하였다. 이후, 크론탭이 실행되고 있는지 확인하기 위해 로그를 보는 (아래와 같은) 명령어를 입력했다. $ tail -f /var/log/syslog | grep CRON 아래와 같은 결과가 등장했다.... 빨간 글씨가 가득한 것을 보니 정상적으로 작동하지 않는 것 같다. 아마, cron 자체의 문제가 아니라 설치나 다른 문제로 보인다. 하지만 이로 인해 cron이 작동하지 않기 때문에, 이를 해결해보도록 하겠다. 검색 결과 postfix를 설치하면 된다는 글을 보고 필자도 설치해보려 한다. sudo apt-get install postfix 설치 후 다시 로그를 보았을 때,..
-
AWS에 배치를 만들기 위한 작업 2 - crontab 설치하기AWS 2023. 8. 21. 17:29
필자는 crontab 사용을 위해, 먼저 ubuntu에 crontab을 설치하려고 한다. 순서는 아래와 같다. # cron 설치 1. sudo apt update -y 2. sudo apt install -y cron 필자는 이미 설치되어 있어서 아래와 같이 나온다. # cron 시작 3. sudo service cron start # cron systemctl 활성화 4. sudo systemctl enable cron.service # cron systemctl 등록 확인 5. sudo systemctl list-unit-files | grep cron 6. sudo service cron status 이후 crontab 을 등록하기 위해서는 crontab -e 명령어를 입력 후 마지막줄에 시간 및 ..
-
Context switch란?Computer Science 2023. 8. 21. 11:35
필자는 공룡책으로 운영 체제 공부를 하던 도중, context switch란 개념을 알게 되었다. 사전적의미로는 와닿지 않아서 다시 개념 부분을 정리하려 한다. 공룡책에서 context switch란? 진행 중이던 프로세스를 저장하고, 다른 프로세스가 cpu 할당 받도록 하는 등, 말 그대로 "switch" 라는 개념인 것은 알았다. 좀 더 자세하게 알기 위해 아래와 같은 url을 참고 했다. https://www.tutorialspoint.com/what-is-context-switching-in-operating-system What is Context Switching in Operating System What is Context Switching in Operating System - Conte..
-
배치 파일을 배포하기 위한 스크립트 파일 작성하기Data engineering/Batch&Pipeline 2023. 8. 20. 16:38
필자는 공공 API를 이용(2023년 전/월세 데이터) 하여 빅쿼리에 초기 적재를 하였다. 이것을 aws에 배포하기 위해 실행 파일 = script를 만들었다. (프로젝트에서 참고 해서 만듬!) 먼저, 환경 python이나 requirements.txt를 설치하기 위한 setting.sh를 작성했다. #!/bin/bash echo "- program : batch" echo "- pwd : ${PWD}/${0}" echo "- job : init setting" DIR="$( cd "$( dirname "$0" )" && pwd )" VENV_DIR="${DIR}/.venv" REQUIREMENT_DIR="${DIR}/requirement.txt" if [ -e "$VENV_DIR" ]; then #ec..
-
공룡책 이용하여 운영체제 공부하기 - 11 (Process Scheduling)운영체제-공룡책 2023. 8. 20. 16:19
■ multiprogramming의 목적 - 매시간에 프로세스를 동작 시키기 위해 - CPU 사용을 극대화 하기 위해 ■ time sharing의 목적 - 프로세스들 간의 CPU 코어를 자주 변경 하기 위해 - 유저들은 각각의 프로그램이 동작하는 동안에도 상호 작용(즉 사용)할 수 있기 위해 ■ Scheduling Queses 란? - process들은 시스템에 들어간 것과 같으며, 프로세스들은 준비된 queue 에 있다. ready queue 란 CPU 코어에서 작동을 위한 대기를 하는 곳 - process들은 확실한 이벤트가 발생하기 위해 기다린다. 이때 process들은 queue에서 대기 - 이 queue들은 보통 수행된다. PCB와 같은 링크드 리스트에서 수행 ■ Queueing Diargram..