Livy로 Spark Application 실행하기 (3) - 실행 결과 모니터링

Livy 서버를 통해 Spark에 Application을 Submit이 된 이후에는 정상적으로 실행되는지 확인해야 한다. 모니터링하는 방법은 크게 두가지가 있다. Jupyter Notebook에서 Livy에 실행 상태를 조회하는 코드 실행 Livy, Spark, Yarn의 웹 UI를 통한 직접 확인 AirFlow Jupyter 컨테이너를 구성하는 방법은 아래 문서를 참고한다. Jupyter Notebook으로 AirFlow 사용하기 Jupyter Notebook으로 AirFlow를 사용하는 방법에 대해 정리한다. Jupyter Notebook은 파이썬 기반의 데이터 과학에서 자주 사용하는 도구이다. 웹페이지 기반의 대화형 파이썬 인터프리터를 제공하기 때문 www.bearpooh.com Livy 서버와 S..

::: IT인터넷 ::: 2023.10.30 61

Livy로 Spark Application 실행하기 (2) - Spark Application 실행

Docker 컨테이너 내부 설정이 완료되면, Livy 서버에 Spark Application을 Submit하는 코드를 작성하고 실행한다. Jupyter Notebook은 파이썬 REPL 환경을 제공하기 때문에, 코드 작성과 실행은 Jupyter Notebook을 사용한다. AirFlow Jupyter 컨테이너를 구성하는 방법은 아래 문서를 참고한다. Jupyter Notebook으로 AirFlow 사용하기 Jupyter Notebook으로 AirFlow를 사용하는 방법에 대해 정리한다. Jupyter Notebook은 파이썬 기반의 데이터 과학에서 자주 사용하는 도구이다. 웹페이지 기반의 대화형 파이썬 인터프리터를 제공하기 때문 www.bearpooh.com Livy 서버와 Spark의 설정을 변경하는 ..

::: IT인터넷 ::: 2023.10.26 0

Livy로 Spark Application 실행하기 (1) - 컨테이너 설정 변경

Livy 서버에 Spark Application 실행을 요청하는 Livy 클라이언트를 구성한다. Livy 클라이언트는 AirFlow를 구성할때 생성한 AirFlow Jupyter 컨테이너에 구성한다. 해당 컨테이너는 Ubuntu 20.04 환경에 conda 가상 환경의 Jupyter Notebook이 실행 중이다. 파이썬 기반의 Livy 클라이언트를 아래 목적으로 실행하는데 편리하다. Livy 서버에 Spark Application을 제출 Livy 서버의 REST API를 호출하여 세션과 배치 작업 제어 굳이 AirFlow와 연동 된 Jupyter Notebook에 Livy Client를 구성한 이유는 다음과 같다. Spark을 이용한 ETL 파이프라인은 AirFlow를 통해 워크플로우를 제어할 것이다...

::: IT인터넷 ::: 2023.10.23 0

Spark Application 실행을 위한 Livy 서버 설정

Jar 형태로 패키징한 Spark Application을 Spark에 Submit 할 때 Livy를 사용하면 아주 편리하다. 환경 구축은 아래 문서를 참고한다. Livy Server 설치와 설정하기 Hadoop (+ YARN), Spark, Zeppelin의 설정을 마쳤으므로, Spark Job과 Application 제출을 위한 환경을 livy로 구성한다. Bigtop을 이용한 Ambari 설치와 설정 변경은 다음 포스팅을 참고한다. [Ambari 7] Ambari 설정과 Had www.bearpooh.com 그러나 Livy 서버의 기본 설정 만으로는 Jar 형태의 Spark Application을 실행하는데 아래와 같은 제약이 있다. 의존성 라이브러리 다운로드를 위한 내부 저장소 접근 불가 (프록시,..

::: IT인터넷 ::: 2023.10.19 0

Hadoop Edge 노드간 통신 설정하기

하둡 클러스터 외부에서 하둡 클러스터에 접근하기 위한 에지 노드를 구성했다. 기본 Edge 노드 구성 방법은 아래 문서를 참고한다. Hadoop Edge 노드 구성하기 (1) - 컨테이너 설정 변경 현재 하둡 클러스터는 다수의 VirtualBox 가상환경을 이용하여 구성했다. 클러스터의 외부에 있는 다른 서버에서는 데이터 노드 접근이 제한된다. 이러한 이유로 HDFS의 데이터를 클러스터 외부로 www.bearpooh.com Hadoop Edge 노드 구성하기 (2) - 하둡 클라이언트 설정 HDFS를 CLI 환경에서 사용하기 위해서는 하둡 클라이언트가 반드시 설치되어 있어야 한다. Docker 컨테이너의 설정 변경이 완료되면 컨테이너 내부에 하둡 클라이언트를 설정한다. 하둡 클러스터 www.bearpoo..

::: IT인터넷 ::: 2023.10.16 56

Hadoop Edge 노드 구성하기 (3) - MinIO 클라이언트 설정

에지 노드를 구성한 목적이 HDFS와 MinIO 사이의 데이터 파일을 중계하는 것이다. 에지 노드에서 연결하기 위한 MinIO의 클라이언트 환경을 구성한다. 하둡 클라이언트 설정 방법은 아래 포스팅을 참고한다. Hadoop Edge 노드 구성하기 (2) - 하둡 클라이언트 설정 HDFS를 CLI 환경에서 사용하기 위해서는 하둡 클라이언트가 반드시 설치되어 있어야 한다. Docker 컨테이너의 설정 변경이 완료되면 컨테이너 내부에 하둡 클라이언트를 설정한다. 하둡 클러스터 www.bearpooh.com 에지 노드 구성을 위한 컨테이너 설정 변경 방법은 아래 포스팅을 참고한다. Hadoop Edge 노드 구성하기 (1) - 컨테이너 설정 변경 현재 하둡 클러스터는 다수의 VirtualBox 가상환경을 이용하..

::: IT인터넷 ::: 2023.10.12 59

Hadoop Edge 노드 구성하기 (2) - 하둡 클라이언트 설정

HDFS를 CLI 환경에서 사용하기 위해서는 하둡 클라이언트가 반드시 설치되어 있어야 한다. Docker 컨테이너의 설정 변경이 완료되면 컨테이너 내부에 하둡 클라이언트를 설정한다. 하둡 클러스터 구성 방법은 아래 문서를 참고한다. [Ambari 2] CentOS 7 가상 환경 생성 Ambari 설치를 위한 CentOS7 가상 환경을 생성한다. Ambari 소개에 대한 내용은 다음 문서를 참고한다. [Ambari 1] Apache Ambari 소개 하둡 에코시스템을 설치하기 위해 각 구성요소들을 직접 개별 설치하는 www.bearpooh.com [Ambari 3] CentOS 7 기본 설정 가상환경에 CentOS 운영체제를 설치했으므로, 이후 필요한 기본 설정을 진행한다. CentOS 설치를 위한 가상환..

::: IT인터넷 ::: 2023.10.09 0

Hadoop Edge 노드 구성하기 (1) - 컨테이너 설정 변경

현재 하둡 클러스터는 다수의 VirtualBox 가상환경을 이용하여 구성했다. 클러스터의 외부에 있는 다른 서버에서는 데이터 노드 접근이 제한된다. 이러한 이유로 HDFS의 데이터를 클러스터 외부로 전송하거나 반대의 작업을 수행하는데 제약 사항이 존재한다. 따라서 클러스터와 외부 환경을 중계하는 에지 노드가 필요하다. 특히 HDFS와 MinIO 간의 데이터 파일 전송을 통해 데이터 파이프라인을 구성하라면 에지노드가 필수적이다. 이러한 에지 노드는 다음과 같은 장점이 있다. 일반 사용자에게 클러스터의 내부 구조와 설정을 숨길 수 있다. 보안과 사용자를 효과적으로 관리할 수 있다. 사용자의 클러스터 설정 변경이 불가능하다. 외부 저장소(ex. MinIO)와 HDFS 간의 중계 역할을 수행하며, 추가적인 전처..

::: IT인터넷 ::: 2023.10.05 0

pyproject.toml을 이용한 파이썬 패키징 (3) - 실제 적용하기

지금까지 파이썬 프로젝트의 패키징은 setuptools의 setup.py를 사용하는 것이 일반적이었다. setup.py를 사용한 파이썬 프로젝트 폴더 구성은 아래 문서를 참고한다. 파이썬 프로젝트 폴더 구성하기 이전 포스팅에서 PyCharm과 VS Code를 사용한 개발 환경 구성을 진행했다. PyCharm과 VS Code를 사용한 개발 환경 구성은 다음 포스팅을 참고한다. 파이썬 개발 환경 구성 (+ PyCharm) 우분투 20.04 LTS (focal)에 www.bearpooh.com setup.py를 사용한 파이썬 프로젝트의 예제 코드는 아래 문서를 참고한다. Jenkins 파이썬 빌드 구성의 예제 코드 만들기 (1) 이전 포스팅에서 Jenkins의 파이썬 빌드 구성을 위해, Docker로 빌드 에..

::: IT인터넷 ::: 2023.09.28 0

pyproject.toml을 이용한 파이썬 패키징 (2) - pyproject.toml의 등장

지금까지 파이썬 프로젝트의 패키징은 setuptools의 setup.py를 사용하는 것이 일반적이었다. setup.py를 사용한 파이썬 프로젝트 폴더 구성은 아래 문서를 참고한다. 파이썬 프로젝트 폴더 구성하기 이전 포스팅에서 PyCharm과 VS Code를 사용한 개발 환경 구성을 진행했다. PyCharm과 VS Code를 사용한 개발 환경 구성은 다음 포스팅을 참고한다. 파이썬 개발 환경 구성 (+ PyCharm) 우분투 20.04 LTS (focal)에 www.bearpooh.com setup.py를 사용한 파이썬 프로젝트의 예제 코드는 아래 문서를 참고한다. Jenkins 파이썬 빌드 구성의 예제 코드 만들기 (1) 이전 포스팅에서 Jenkins의 파이썬 빌드 구성을 위해, Docker로 빌드 에..

::: IT인터넷 ::: 2023.09.25 0

pyproject.toml을 이용한 파이썬 패키징 (1) - setup.py의 문제

지금까지 파이썬 프로젝트의 패키징은 setuptools의 setup.py를 사용하는 것이 일반적이었다. setup.py를 사용한 파이썬 프로젝트 폴더 구성은 아래 문서를 참고한다. 파이썬 프로젝트 폴더 구성하기 이전 포스팅에서 PyCharm과 VS Code를 사용한 개발 환경 구성을 진행했다. PyCharm과 VS Code를 사용한 개발 환경 구성은 다음 포스팅을 참고한다. 파이썬 개발 환경 구성 (+ PyCharm) 우분투 20.04 LTS (focal)에 www.bearpooh.com setup.py를 사용한 파이썬 프로젝트의 예제 코드는 아래 문서를 참고한다. Jenkins 파이썬 빌드 구성의 예제 코드 만들기 (1) 이전 포스팅에서 Jenkins의 파이썬 빌드 구성을 위해, Docker로 빌드 에..

::: IT인터넷 ::: 2023.09.21 41

Spark Application 패키지 작성하기 (5) - 테스트 작성과 빌드, 배포

기본적인 Scala 개발환경이 구축되고 나면 목표로 했던 Spark Application을 작성한다. 앞서 테스트에 사용한 Spark Application은 main 함수에 기능을 구현한 단순한 예제 프로그램이다. 기존에 Hadoop 기반의 Spark 클러스터를 구축했으므로, Spark Application은 해당 환경에서 실행할 수 있는 형태로 작성해야 한다. 따라서 Spark Application 작성을 위한 기본 형태 (Skeleton) 제공을 위한 예제 프로그램을 재작성한다. 참고로 예전에 실무에서 활용했던 Spark Application 코드에서 재사용 또는 공개가 가능한 코드만 활용하여 정리하였다. 전체적인 내용은 아래 문서를 참고하고, 변경 사항을 중심으로 정리한다. 간단한 Spark App..

Spark Application 패키지 작성하기 (4) - 비즈니스 로직 작성

기본적인 Scala 개발환경이 구축되고 나면 목표로 했던 Spark Application을 작성한다. 앞서 테스트에 사용한 Spark Application은 main 함수에 기능을 구현한 단순한 예제 프로그램이다.기존에 Hadoop 기반의 Spark 클러스터를 구축했으므로, Spark Application은 해당 환경에서 실행할 수 있는 형태로 작성해야 한다. 따라서 Spark Application 작성을 위한 기본 형태 (Skeleton) 제공을 위한 예제 프로그램을 재작성한다.참고로 예전에 실무에서 활용했던 Spark Application 코드에서 재사용 또는 공개가 가능한 코드만 활용하여 정리하였다. 전체적인 내용은 아래 문서를 참고하고, 변경 사항을 중심으로 정리한다. 간단한 Spark Appli..

Spark Application 패키지 작성하기 (3) - 데이터 처리 로직 작성

기본적인 Scala 개발환경이 구축되고 나면 목표로 했던 Spark Application을 작성한다. 앞서 테스트에 사용한 Spark Application은 main 함수에 기능을 구현한 단순한 예제 프로그램이다.기존에 Hadoop 기반의 Spark 클러스터를 구축했으므로, Spark Application은 해당 환경에서 실행할 수 있는 형태로 작성해야 한다. 따라서 Spark Application 작성을 위한 기본 형태 (Skeleton) 제공을 위한 예제 프로그램을 재작성한다.참고로 예전에 실무에서 활용했던 Spark Application 코드에서 재사용 또는 공개가 가능한 코드만 활용하여 정리하였다. 전체적인 내용은 아래 문서를 참고하고, 변경 사항을 중심으로 정리한다. 간단한 Spark Appli..

::: 데이터 분석 ::: 2023.09.11 35

Spark Application 패키지 작성하기 (2) - 헬퍼 기능 작성

기본적인 Scala 개발환경이 구축되고 나면 목표로 했던 Spark Application을 작성한다. 앞서 테스트에 사용한 Spark Application은 main 함수에 기능을 구현한 단순한 예제 프로그램이다. 기존에 Hadoop 기반의 Spark 클러스터를 구축했으므로, Spark Application은 해당 환경에서 실행할 수 있는 형태로 작성해야 한다. 따라서 Spark Application 작성을 위한 기본 형태 (Skeleton) 제공을 위한 예제 프로그램을 재작성한다. 참고로 예전에 실무에서 활용했던 Spark Application 코드에서 재사용 또는 공개가 가능한 코드만 활용하여 정리하였다. 전체적인 내용은 아래 문서를 참고하고, 변경 사항을 중심으로 정리한다. 간단한 Spark App..

Spark Application 패키지 작성하기 (1) - 전체 구조와 기본 설정

기본적인 Scala 개발환경이 구축되고 나면 목표로 했던 Spark Application을 작성한다. 앞서 테스트에 사용한 Spark Application은 main 함수에 기능을 구현한 단순한 예제 프로그램이다. 기존에 Hadoop 기반의 Spark 클러스터를 구축했으므로, Spark Application은 해당 환경에서 실행할 수 있는 형태로 작성해야 한다. 따라서 Spark Application 작성을 위한 기본 형태 (Skeleton) 제공을 위한 예제 프로그램을 재작성한다. 참고로 예전에 실무에서 활용했던 Spark Application 코드에서 재사용 또는 공개가 가능한 코드만 활용하여 정리하였다. 전체적인 내용은 아래 문서를 참고하고, 변경 사항을 중심으로 정리한다. 간단한 Spark App..

::: 데이터 분석 ::: 2023.09.04 49

Scala 빌드 파이프라인 설정하기 (2) - 빌드와 배포

Jenkins와 연동한 Scala 빌드 머신을 활용하여 실제 Spark Application을 빌드하고 배포한다. Jenkins에 Spark Application의 빌드를 생성하는 방법은 아래 문서를 참고한다. Scala 빌드 파이프라인 설정하기 (빌드 생성) Jenkins와 연동한 Scala 빌드 머신을 활용하여 실제 Spark Application을 빌드하고 배포한다. Scala 빌드머신을 Jenkins에 연동하는 방법은 아래 문서를 참고한다. Jenkins에 Scala 빌드머신 연동하기 (Jenkins 연 www.bearpooh.com Scala 빌드머신을 Jenkins에 연동하는 방법은 아래 문서를 참고한다. Jenkins에 Scala 빌드머신 연동하기 (Jenkins 연결) Scala 빌드 머신..

::: IT인터넷 ::: 2023.08.31 55

Scala 빌드 파이프라인 설정하기 (1) - 빌드 생성

Jenkins와 연동한 Scala 빌드 머신을 활용하여 실제 Spark Application을 빌드하고 배포한다. Scala 빌드머신을 Jenkins에 연동하는 방법은 아래 문서를 참고한다. Jenkins에 Scala 빌드머신 연동하기 (Jenkins 연결) Scala 빌드 머신의 Docker 이미지를 컨테이너로 실행하여 Jenkins 에 Scala 빌드 에이전트로 등록한다. Scala 빌드 머신의 Docker 컨테이너를 실행하는 방법은 아래 문서를 참고한다. Jenkins에 Scala 빌드머신 www.bearpooh.com Scala 빌드머신을 생성하는 방법은 아래 문서를 참고한다. Docker로 Scala 빌드머신 만들기 (빌드와 배포) Scala 개발환경 구성이 완료되면 작성한 Application..

::: IT인터넷 ::: 2023.08.28 0

Jenkins에 Scala 빌드머신 연동하기 (2) - Jenkins 연결

Scala 빌드 머신의 Docker 이미지를 컨테이너로 실행하여 Jenkins 에 Scala 빌드 에이전트로 등록한다. Scala 빌드 머신의 Docker 컨테이너를 실행하는 방법은 아래 문서를 참고한다. Jenkins에 Scala 빌드머신 연동하기 (Docker 컨테이너 실행) Scala 빌드 머신의 Docker 이미지를 컨테이너로 실행하여 Jenkins 에 Scala 빌드 에이전트로 등록한다. Scala 빌드머신을 Docker로 생성하는 방법은 아래 문서를 참고한다. Docker로 Scala 빌드머신 만들기 (Doc www.bearpooh.com Scala 빌드머신을 Docker로 생성하는 방법은 아래 문서를 참고한다. Docker로 Scala 빌드머신 만들기 (Dockerfile 작성) Scala ..

::: IT인터넷 ::: 2023.08.24 0

Jenkins에 Scala 빌드머신 연동하기 (1) - Docker 컨테이너 실행

Scala 빌드 머신의 Docker 이미지를 컨테이너로 실행하여 Jenkins 에 Scala 빌드 에이전트로 등록한다. Scala 빌드머신을 Docker로 생성하는 방법은 아래 문서를 참고한다. Docker로 Scala 빌드머신 만들기 (Dockerfile 작성) Scala 개발환경 구성이 완료되면 작성한 Application을 빌드하고 배포해야 한다. 이전에 Jenkins로 Python과 Docker 빌드/배포 환경을 구축한 방법을 활용하여 Scala Application의 빌드 머신을 생성한다. Jenkins www.bearpooh.com Docker로 Scala 빌드머신 만들기 (Dockerfile 폴더 구성) Scala 개발환경 구성이 완료되면 작성한 Application을 빌드하고 배포해야 한다..

::: IT인터넷 ::: 2023.08.21 31