Posts

Windows에서 Buf 사용해보기

Image
 그동한 사용하던 맥북(2019년형 15인치)을 버리고, 윈도우 노트북으로 넘어왔다. Protobuf를 빌드할때 흔히 protoc을 사용할 것이라고 생각하지만 해당 protoc은 명령어를 shell 코드로 관리하는 등의 추가적인 부분이 필요하다. 하지만 buf[1]를 사용하면 손쉽게 protobuf에 딸려들어가는 의존성을 관리할 수 있다. Buf 홈페이지 하지만 buf 프로그램이 그동한 윈도우를 지원하지 않아서 좀 어려움이 있었는데, 이번에 업데이트 내역을 보니 윈도우에서 지원한다는 이야기(https://github.com/bufbuild/buf/issues/150)가 있어서 다운로드하여 사용해보았다. Buf 레파지토리에 올라온 윈도우 지원을 요청하는 이슈 0.54.0 버전부터 윈도우를 지원을 시작하였다 Golang을 이용하여 개발한다면 아마도 GOPATH/bin이 PATH변수에 등록되어 있으니, 그냥 편하게 GOPATH/bin에 다운로드하였다. 윈도우에서 Buf를 실행시켜본 모습 해당 Buf툴을 가지고 빌드를 돌려본 결과 grpc, grpc-go 및 grpc-gateway 환경에서 정상적으로 컴파일되는것을 확인할 수 있었다. grpc-gateway 환경설정은 grpc-gateway[2]의 공식 레파지토리를 참고하면 된다. 윈도우에서도 이런 좋은 툴이 지원된다는 것을 보고, 더이상 고철덩어리인 맥북을 안들고 다닐수 있어서 좋은 것 같다. 1: https://buf.build/ 2: https://github.com/grpc-ecosystem/grpc-gateway 

Apache Airflow 설치해보기

Image
 서론 Spark를 사용하여 Big Data Processing을 하게 되면서 일정 시간마다 처리할 수 있도록 도와주는 프로세서를 찾게 되었고, 여기에서 NiFi와 Airflow가 눈에 들어왔다. 그래서 NiFi(나이파이인지, 니피인지는 모르겠다)를 사용해보려고 했지만 구닥다리인 UI 덕분에 쓸 생각이 없어졌고, Airflow가 여기에서는 우위에 있다고 생각해서 Airflow를 사용해보려고 한다. 본론 설치[2] $ which python 여기서는 당연히 파이썬을 필요로 하고, Python3이상의 버전을 사용하는 것을 권장한다. (Python 2는 이미 관짝에 봉인된지 오래다.) 그래서 Python을 설치한 후 PATH 에 Python을 잡아주어 Python, PyPi Installer 및 airflow 커맨드를 사용할 수 있도록 해주자. $ export AIRFLOW_HOME=~/airflow 해당 명령은 넣어도 되고 안넣어도 된다. 지정한 폴더 내에 데이터베이스가 쌓이기 때문에 변경해야 할 필요성이 있는 경우 해당 폴더를 변경해서 사용하면 충분할 것 같다. 데이터베이스도 Sqlite외에 다른 DB 엔진을 사용해도 되는 것으로 보인다. 공식 문서[1]에서 이야기하기로는 MySQL이나 PostgreSQL을 사용하라고 권장하고 있는데, 기본으로 제공되는 Sqlite 를 사용해도 무방한 문제라고 본다. [사진 1] 라고 쓸려고 했는데 PostgreSQL로 이전하는게 좋아 보인다... 쩝... $   pip install apache-airflow 해당 명령을 통해서 Apache Airflow를 설치하게 되고 $   airflow initdb 해당 명령을 통해서 데이터베이스를 초기화하게 된다. $AIRFLOW_HOME을 지정하지 않으면 내 홈 디렉토리에 airflow 폴더에 생성된다. $   airflow webserver -p 8080 해당 명령을 실행시키면 WebServer을 실행시킬 수 있고. $   airflow scheduler 해당 명령을 사용하면 Air

Mac에서 Scala Spark Jupyter Notebook을 사용해보기

Image
음... 심심해서 몇가지 테스트 겸 공부해보기 위해서 Spark 를 공부해보고 있다. 사용할때 Jupyter Notebook을 통해 Scala를 사용할 수 있는 "spylon-kernel" 이라는게 있어서 한번 사용해보려 한다. 설치를 위해서는 1) Python 2) Scala 3) Spark 를 설치하여야 한다. Jupyter Notebook을 돌리기 위해서 Python을 설치해야 하고, Spark를 돌리기 위해서 JAVA가 필요하며, Spark위에서 작업을 하기 위해서는 Scala가 필요하다. 대충 공부 소꿉놀이 를 위해서는 PySpark를 사용해도 무방하다. 자바를 한번도 해본적은 없지만 (업무에서는 Golang을 사용하고 있다.) PySpark보다는 Scala를 사용하는게 나은 선택인 것 같아서 사용한다. 이전에 Spark를 공부했을 때는 PySpark를 사용했었으나, Production을 가정하고 사용할때는 Scala를 사용하는 것이 나은 것 같다. Python: http://python.org 에 접속해 파이썬을 다운로드 받는다. 윈도우에서 입력하면 윈도우 스토어를 통해서 설치된다고 알고 있으나, 공식문서에서 다운로드 받는게 좋다고 본다. Java: https://adoptopenjdk.net/ 에 접속해 자바를 다운로드 받는다. 환경변수 (JAVA_HOME, PATH 등) 설정은 해야한다. Scala: https://www.scala-lang.org/ 에 접속해 스칼라를 다운로드 받는다. 이 역시도 알아서 잘 설정하면 된다. SBT로 한방에 설치했다. (brew install sbt) Spark: https://spark.apache.org/ 에 접속해 스파크를 다운로드 받는다. 이 역시도 알아서 잘 설정하면 된다. SPARK_HOME 환경변수를 설정한 후 이 역시도 PATH설정을 맞출 것. Spylon-Kernel[1] 설치 $ pip install spylon-kernel $ python -m spylon-kernel inst

KubeCon Europe 참관기, 그리고 GPU Sharing

KubeCon Europe 참관기 Kubernetes 외길을 걸어온지 여느넛 1년 넘게 지났다. 회사를 들어오고 나서부터 쿠버네티스를 시작했으니 일년 넘었다. 이전에는 스터디에서 Kubernetes와 ETCD, Consul 등을 공부했었는데 지금 와서 생각해보니 아주 좋은 선택을 한 것 같다. 클라우드가 새로운 세상을 만들었고, 컨테이너를 통해서 클라우드 컴퓨팅을 아주 자유롭게 만들었으며, Kubernetes 같은 오케스트레이터의 등장으로 인해서 한 노드에서 여러 컴퓨터를 컨테이너를 통해서 손쉽게 관리할 수 있게 되었다. 이러한 것에서, 회사에서는 클라우드 네이티브 방식을 따르기 위해서 여러가지를 찾고 있다. 예전에는 많이 만들어서 사용하고 있었던 것들은 지금 와서는 있는걸 잘 사용하기 위해서 어떻게 조립할 것인가? 라는 주제로 많이 리서치를 하고 있다. 그러던 참에 저번년도에 가기로 했던 쿠베콘 유럽이 코로나로 인해서 국경이 잠기게 되면서, 해외에는 영영 못나가게 되었다. 이러한 부분을 좌절하는 것보다는 전화위복의 기회로 삼자는 생각을 하고 여러가지 Keynote를 찾아보고, 슬라이드를 찾아보는데 시간을 많이 쏟고 있다. 공교롭게도 회사에서 KubeCon Europe 2020 티켓을 사 주셔서 온라인으로 몇가지 비디오도 보고, 슬라이드도 찾아보았다.