macOS 에서 pyspark SparkContext 생성 시 java.net.BindException 에러

macOS 에서 pyspark SparkContext 생성 시 java.net.BindException 에러

macOS 에서 Jupyter 노트북을 통해 로컬 pyspark 의 SparkContext 생성시 아래와 같이 java.net.BindException 에러가 나는 경우가 있습니다.

import os
from pyspark.sql import SparkSession

spark_home = os.environ.get('SPARK_HOME', None)
spark = SparkSession.builder.master("local[*]").appName("spark")
spark = spark.config("spark.driver.memory", "8g")
spark = spark.config("spark.executor.memory", "8g")
spark = spark.config("spark.python.worker.memory", "8g")
spark = spark.getOrCreate()

sc = spark.sparkContext

Read more…

도커 이미지 빌드시 pip 137 에러

도커 이미지 빌드시 pip 137 에러

macOS 에서 Docker 이미지 빌드시 pip 로 용량이 큰 python 패키지 인스톨을 하면 아래와 같이 137 에러를 내며 죽는 경우가 있는데, 이는 Docker 빌드를 위해 필요한 메모리가 부족해서 나타나는 현상입니다. 이럴때는 Docker VM 의 메모리 사이즈를 늘려주시면 됩니다.

Collecting tensorflow==2.1.0
  Downloading tensorflow-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl (421.8 MB)
/bin/sh: line 1:     7 죽었음               pip3 install --cache-dir /tmp/pip3 --timeout 600 tensorflow==$TENSORFLOW_VER
The command '/bin/sh -c pip3 install --cache-dir /tmp/pip3 --timeout 600 tensorflow==$TENSORFLOW_VER ; fi' returned a non-zero code: 137

Read more…

원격서버에서 VSCode 사용하기

sshcode

Visual Studio Code 는 MS 에서 오픈소스화한 후, 다양한 운영체제를 지원과 풍부한 extension 때문에 점점 사용 빈도수가 높아지고 있는 앱 중 하나가 되어 가고 있는것 같습니다. 노트북에서도 소스 에디터로 많이 사용하고 있지만, sshcode 로 인해 활용성이 서버로까지 확장되고 있습니다.

요즘은 클라우드상에서 명령어를 통해서 작업하는 것보다는 YAML형태의 파일로 상태를 선언해서 사용하는 작업이 많아 서버에서 작업을 해야 할때 소스 에디터가 아쉬운 경우가 많습니다. vi 라는 전통적 툴이 있지만 아주 장황한 YAML 파일을 수정하다 보면 금새 타이핑이 피곤해지기 일 수 입니다.

이럴 때, sshcode 라는 툴을 이용하면 서버에서 VSCode를 사용할 수 있게 되어, YAML 파일 작성과 터미널 작업을 한결 수월하게 진행할 수 있게 됩니다.

Read more…

iconv로 파일 인코딩 변환

현재는 UTF-8 이 표준이 되었지만, 가끔 오래된 서버들은 아직 EUC-KR을 기본 인코딩으로 사용하는 경우가 많이 있습니다.

이 경우 EUC-KR 또는 CP949 등의 예전 한글 인코딩 방식을 가지고 있는 서버에서 생성된 파일을 UTF-8 인코딩 기반 시스템에서 볼 경우 파일내 한글이 깨져 보이게 됩니다.

Read more…

Jupyter Notebook을 Shell 에서 수행하기

Jupyter 에서 Notebook 을 Shell 상에서 수행하기

Jupyter를 서버에 설치해 놓고 사용하다보면 트레이닝 중 일때 갑자기 자리를 옮겨야 할 때가 생기면 중간에 멈추고 다시 트레이닝 해야 할때가 종종 있습니다. 이럴때는 Jupyter의 Terminal 상에서 바로 nbconvert를 통해서 Notebook을 끊김 없이 수행할 수 있습니다.

Read more…

Jupyter 노트북 셀을 API를 통해 반복적으로 지우기

clear_output 함수

Jupyter에서 프로그래밍을 할 때, 루프문을 통해서 지속 적으로 로그를 출력해야 할때가 있습니다. 루프 횟수가 작다면 그런대로 봐줄만 하지만, 조금만 횟수가 늘어나더라도 스크롤의 압박을 피할수는 없게 됩니다. 이럴때는 위해 노트북에서는 셀 출력창을 지워주는 함수가 있습니다.

Read more…

Let's Encrypt SSL 인증서 Azure 에 적용하기

웹 서버 브라우저와의 안전한 통신을 위해 HTTPS를 사용하기 위해서는 SSL 인증서가 필요합니다.

https://letsencrypt.org 을 이용하면, 개인용이나, 개발용으로 싱글 DNS에 대해서 SSL 인증서를 발급받는 것을 무료로 진행할 수 있습니다.

Let's encrypt에서 제공하는 퉁을 이용해 SSL 인증서를 발급 받아보고, pem 확장자의 인증 파일을 SSL 오프로드를 위해 사용한 azure application gateway에서 사용할 pfx 확장자 인증 파일로 변환해 봅니다.

Read more…