Data Engineering

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/AI

[AI] Datahub의 구조

모델-우선 메타데이터 구조1. Entity데이터셋, 파이프라인, ML 모델, DashBoard 등 “실체”를 식별하는 최상위 타입 2. AspectEntity에 붙는 버전 가능한(immutable-append) 하위 스키마.예를 들면, schemaMetadata, ownership, dataPlatformInstance 3. URNurn:li:::: 형식의 전역 식별자 4. MCP / MCLMetadataChangeProposal (요청)과 MetadataChangeLog (실행 결과).둘 다 Avro 스키마로 직렬화돼 Kafka 토픽에 기록됨. 왜 Aspect 설계가 중요한가?column 추가 같은 잦은 스키마 진화를 Table 단위가 아니라 Aspect 단위로 versioning → API와 스토리지..

Data Engineering/AI

[AI] LLM 페르소나 개념

페르소나란 무엇인가?1. 개념LLM이 대화 내내 일관된 성격, 어조, 지식 범위, 행동 규칙을 유지하도록 하는 역할(Role) 또는 캐릭터(Character) 메타데이터 2. 표현 층① 프롬프트(system/role), ② 파라미터 (LoRA·Adapter), ③ 외부 메모리 (Vector DB), ④ 정책 레이어 (Tool 권한) 3. 목적브랜드-보이스, NPC·챗봇 역할극, 도메인 전문 비서, 사용자-맞춤 UX 등에서 일관성(consistency)·몰입감(immersion)을 확보 연구 커뮤니티는 이를 “Personality/Persona Alignment”라고 지칭함.일반적 휴먼 밸류 정렬과 달리 특정 성격에 맞게 모델을 맞추는 문제로 분리함. 기술 스택 - 4 Layer Persona Stack1..

Data Engineering/AI

[AI] LLM 에이전트 개념

용어 정리 - "대화형 모델"과 "에이전트"의 경계1. 기본능력1-1. LLM (언어 모델)입력 → 텍스트 생성1-2. LLM Agent목표 달성을 위해 외부 환경과 반복적으로 관찰-사고-행동(Act) 2. 상태2-1. LLM (언어 모델)무상태(stateless)‧프롬프트 의존2-2. LLM Agent능동적 메모리(Episodic/Vector DB) 유지 3. 도구3-1. LLM (언어 모델)없음(텍스트만)3-2. LLM AgentAPI, DB, 파일시스템, 브라우저 등 Tool API 호출 4 루프4-1. LLM (언어 모델)1-shot 또는 대화 turn4-2. LLM AgentObserve → Think → Act → (optional) Reflect → … 즉 Agent는 LLM에 행동 실행기,..

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