Data Engineering/Zeppelin

Data Engineering/Zeppelin

[Zeppelin] zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/repo/VFSNotebookRepo.jav 분석

클래스의 역할 ― “노트북 파일을 실제 파일시스템(또는 원격)에 안전하게 저장·조회·이동·삭제”구현 인터페이스AbstractNotebookRepo (Zeppelin 공통 저장소 추상 클래스)핵심 책임① 저장(save) ② 조회(get) ③ 목록(list) ④ 이동(move) ⑤ 삭제(remove) ⑥ 설정 조회/갱신주요 기술Apache VFS(Virtual File System) — 로컬·HDFS·S3·FTP 등 다양한 스킴을 하나의 API로 다룸 왜 VFS인가?Zeppelin 노트북은 로컬 디스크뿐만 아니라 S3, HDFS, WebDAV 등으로도 저장될 수 있음.Apache VFS는 스킴별 구현체(FileProvider)만 설정하면 동일한 코드로 모든 스토리지를 다룰 수 있는 추상화 계층을 제공함. 필..

Data Engineering/Zeppelin

[Zeppelin] zeppelin/zeppelin-web/src/components/websocket/websocket-event.factory.js 분석

팩토리 선언부: 싱글턴 WebSocket 게이트웨이angular.module('zeppelinWebApp') .factory('websocketEvents', WebsocketEventFactory);function WebsocketEventFactory($rootScope, $websocket, $location, baseUrlSrv, saveAsService, ngToast) { ... }Angular 팩토리DI 컨테이너에 싱글턴을 등록. 한 번 생성되면 앱 생애주기 동안 동일 인스턴스를 사용ngInjectES-build 단계에서 주입 대상 이름을 주석으로 보존해 minify safe 한 의존성 주입 보장주입 모듈$websocket(an..

Data Engineering/Zeppelin

[Zeppelin] .github/actions/tune-runner-vm/action.yml 분석

.github/actions/tune-runner-vm/action.ymlGitHub Actions “Composite Action” 내에서 리눅스 러너(특히 GitHub-hosted Ubuntu 러너)를 부팅한 즉시 / 초기에 실행되는 셸 스크립트를 정의함.핵심 목적은 러너 자신의 호스트네임 → IP 역방향 조회가 제대로 해결되지 않아 발생할 수 있는 DNS 지연을 없애는 것임. Composite Action 컨텍스트name: Tune Runner VM performancedescription: tunes the GitHub Runner VM operation systemruns: using: composite steps: - run: | ... shell: bashrun..

Data Engineering/Zeppelin

[Zeppelin] Github Action에서 Chrome/ChromeDriver 버전 고정

버전 고정이 필요한 이유CI 환경(특히 ubuntu-latest 러너)은 크롬 계열 브라우저와 드라이버를 자동 업데이트함.Selenium, Playwright, Puppeteer 테스트가 다음과 같은 증상을 보인다면 의심해 봐야 함. 1. 테스트가 갑자기 Unknown error: cannot find Chrome binary 로 실패러너의 크롬은 업데이트됐지만 드라이버는 구버전 2. session not created: This version of ChromeDriver only supports Chrome X드라이버는 최신이지만 크롬이 구버전 3. 헤드리스 모드에서 렌더링 차이 및 스크린샷 불일치메이저 버전 간 렌더링 엔진 변경 테스트 신뢰도를 높이려면 테스트 대상과 자동화 드라이버를 같은 메이저 버..

Data Engineering/Zeppelin

[Zeppelin] SparkUtils.java 분석

클래스의 역할과 배경SparkUtils 는 Zeppelin ↔ Spark 통합 계층에서 Spark 1.x ↔ Spark 2.x/3.x API 차이를 흡수하기 위해 설계된 추상(base) 유틸리티 클래스임. 실제 런타임에서는 리플렉션으로 Spark 버전에 맞는 구체 서브클래스(Spark1Utils, Spark2Utils 등)를 로드하지만, 공통으로 재사용할 수 있는 기능들은 이 베이스 클래스에 구현돼 있음주요 책임은 세 가지임. Job TrackingSparkListener를 등록해 JobStart 이벤트가 발생할 때마다 Spark Web UI (URL) 정보를 노트/문단 단위로 Zeppelin 프론트엔드에 push. DataFrame 렌더링Dataset를 Zeppelin 프론트엔드가 인식하는 %table..

Data Engineering/Zeppelin

[Zeppelin] SparkSubmitInterpreter.java 분석

Spark Submit Interpreter가 하는 일SparkSubmitInterpreter는 Apache Zeppelin의 Interpreter Framework 안에서 %spark-submit 매직 명령을 제공하는 클래스임.사용자가 Zeppelin 노트북 셀(Paragraph)에서 Spark CLI( spark-submit )를 그대로 호출할 수 있게 해 줌. Zeppelin ↔ Shell ↔ Spark 흐름을 중개하며, Spark UI URL, YARN Application ID 등 실시간 메타데이터를 추출, 전송해 Zeppelin 프런트엔드에 작업 상태를 시각화함.Spark 클러스터 유형(YARN, Stand-alone, Local 등)에 상관없이 동작하도록 설계돼 있지만, YARN 모드일 때는..

Data Engineering/Zeppelin

[Zeppelin] ElasticsearchClient.java 분석

원본 코드zeppelin/elasticsearch/src/main/java/org/apache/zeppelin/elasticsearch/client/ElasticsearchClient.java/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (..

Data Engineering/Zeppelin

[Zeppelin] Maven 의존성

Maven 의존성Maven에서 의존성은 프로젝트를 빌드, 테스트, 배포할 때 필요한 외부 라이브러리, 프레임워크, 플러그인 등을 의미함.Maven은 이러한 의존성을 자동으로 관리하여 개발자가 직접 라이브러리를 다운로드하고 설정하는 수고를 덜어줌.의존성 관리는 Maven의 핵심 기능 중 하나로, 특히 대규모 프로젝트에서 개발의 생산성을 높이고 유지보수를 용이하게 만듦. Maven 의존성의 기본 개념Maven에서 의존성은 pom.xml 파일에 dependencies 섹션을 통해 정의됨.각 의존성은 GAV 형태로 관리됨.1. Group ID라이브러리나 프로젝트의 소속을 나타내는 식별자 2. Artifact ID특정 라이브러리를 구분하는 이름 3. Version해당 라이브러리의 버전 기본 의존성 설정 ..

Data Engineering/Zeppelin

[Zeppelin] Realm

Realm 개요 및 정의Realm은 모바일 애플리케이션용 데이터베이스로, 특히 iOS와 Android 환경에서 효율적으로 사용될 수 있도록 설계된 NoSQL 기반 데이터베이스 엔진임.Realm은 로컬 데이터베이스를 지원하며, SQLite와 Core Data를 대체할 수 있는 대안으로 널리 사용됨.Realm의 주요 목표는 빠른 성능, 간결한 API, 데이터의 동기화 및 보안을 제공함.Realm은 오픈 소스 프로젝트로 시작되었으며, 현재 MongoDB가 이를 인수하여 관리하고 있음.Realm의 클라우드 기능과 Realm Sync를 활용하면 클라이언트 간에 데이터를 자동으로 동기화할 수 있임.Realm의 주요 특징1. 고성능 및 빠른 속도Realm은 SQLite보다 최대 10배 빠른 성능을 제공할 수 있음.데..

Data Engineering/Zeppelin

[Zeppelin] Neo4j

Neo4jNeo4j는 그래프 데이터베이스의 대표적인 솔루션임.노드와 관계를 이용해 데이터를 저장하고 쿼리하는 데이터베이스임.관계형 데이터베이스와 달리, 데이터의 연결성을 자연스럽게 모델링하고 빠르게 탐색할 수 있도록 설계됨.이를 통해 복잡한 관계형 데이터를 다루는 데 효율적이며, 특히 소셜 네트워크 분석, 추천 시스템, 공급망 관리, 사기 탐지 등에서 뛰어난 성능을 발휘함. Neo4j의 기본 개념Neo4j의 데이터 구조는 그래프 모델을 기반으로 함. 1. 노드데이터를 표현하는 기본 단위임.예를 들어, 사람, 장소, 제품 등이 노드로 표현됨.각 노드는 속성을 가질 수 있음.예를 들어, name, age, location과 같은 키값 쌍 형태의 속성임.노드는 레이블을 사용해 카테고리화할 수 있음.예를 들어 ..

박경태
'Data Engineering/Zeppelin' 카테고리의 글 목록