Skip to content

[NEW] local spark 작업 환경 setup infra #3

Description

@seoyeong200

요건 파악

*DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

Local Spark 활용을 위한 Docker 구축

: local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

  • spark+jupyter
  • AWS Configure 설정
  • Extension 기본 설정
  • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

정리

A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

환경 분리 context

기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


🔗 관련 링크


📌 진행상황

*진행상황에 예상 마감 일정까지 함께 기재해주세요!!

  • A 환경 개발
  • A 환경 테스트
  • B 환경 개발 (~6/19)
  • B 환경 테스트 (~6/21)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
    Skip to content

    [NEW] local spark 작업 환경 setup infra #3

    Description

    @seoyeong200

    요건 파악

    *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

    Local Spark 활용을 위한 Docker 구축

    : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

    • spark+jupyter
    • AWS Configure 설정
    • Extension 기본 설정
    • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

    정리

    A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

    B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

    환경 분리 context

    기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

    하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

    추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


    🔗 관련 링크


    📌 진행상황

    *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

    • A 환경 개발
    • A 환경 테스트
    • B 환경 개발 (~6/19)
    • B 환경 테스트 (~6/21)

    Metadata

    Metadata

    Assignees

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
      Skip to content

      [NEW] local spark 작업 환경 setup infra #3

      Description

      @seoyeong200

      요건 파악

      *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

      Local Spark 활용을 위한 Docker 구축

      : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

      • spark+jupyter
      • AWS Configure 설정
      • Extension 기본 설정
      • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

      정리

      A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

      B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

      환경 분리 context

      기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

      하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

      추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


      🔗 관련 링크


      📌 진행상황

      *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

      • A 환경 개발
      • A 환경 테스트
      • B 환경 개발 (~6/19)
      • B 환경 테스트 (~6/21)

      Metadata

      Metadata

      Assignees

      Labels

      No labels
      No labels

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
        Skip to content

        [NEW] local spark 작업 환경 setup infra #3

        Description

        @seoyeong200

        요건 파악

        *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

        Local Spark 활용을 위한 Docker 구축

        : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

        • spark+jupyter
        • AWS Configure 설정
        • Extension 기본 설정
        • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

        정리

        A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

        B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

        환경 분리 context

        기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

        하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

        추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


        🔗 관련 링크


        📌 진행상황

        *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

        • A 환경 개발
        • A 환경 테스트
        • B 환경 개발 (~6/19)
        • B 환경 테스트 (~6/21)

        Metadata

        Metadata

        Assignees

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
          Skip to content

          [NEW] local spark 작업 환경 setup infra #3

          Description

          @seoyeong200

          요건 파악

          *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

          Local Spark 활용을 위한 Docker 구축

          : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

          • spark+jupyter
          • AWS Configure 설정
          • Extension 기본 설정
          • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

          정리

          A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

          B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

          환경 분리 context

          기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

          하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

          추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


          🔗 관련 링크


          📌 진행상황

          *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

          • A 환경 개발
          • A 환경 테스트
          • B 환경 개발 (~6/19)
          • B 환경 테스트 (~6/21)

          Metadata

          Metadata

          Assignees

          Labels

          No labels
          No labels

          Type

          No type

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
            Skip to content

            [NEW] local spark 작업 환경 setup infra #3

            Description

            @seoyeong200

            요건 파악

            *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

            Local Spark 활용을 위한 Docker 구축

            : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

            • spark+jupyter
            • AWS Configure 설정
            • Extension 기본 설정
            • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

            정리

            A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

            B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

            환경 분리 context

            기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

            하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

            추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


            🔗 관련 링크


            📌 진행상황

            *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

            • A 환경 개발
            • A 환경 테스트
            • B 환경 개발 (~6/19)
            • B 환경 테스트 (~6/21)

            Metadata

            Metadata

            Assignees

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
              Skip to content

              [NEW] local spark 작업 환경 setup infra #3

              Description

              @seoyeong200

              요건 파악

              *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

              Local Spark 활용을 위한 Docker 구축

              : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

              • spark+jupyter
              • AWS Configure 설정
              • Extension 기본 설정
              • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

              정리

              A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

              B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

              환경 분리 context

              기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

              하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

              추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


              🔗 관련 링크


              📌 진행상황

              *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

              • A 환경 개발
              • A 환경 테스트
              • B 환경 개발 (~6/19)
              • B 환경 테스트 (~6/21)

              Metadata

              Metadata

              Assignees

              Labels

              No labels
              No labels

              Type

              No type

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [NEW] local spark 작업 환경 setup infra · Issue #3 · brickstudy/infra-docs · GitHub
                Skip to content

                [NEW] local spark 작업 환경 setup infra #3

                Description

                @seoyeong200

                요건 파악

                *DE 요청관리에 있는 내용 기반으로 요청 담당자와 커뮤니케이션을 통해 자세히 요건 파악을 진행해주세요.

                Local Spark 활용을 위한 Docker 구축

                : local 환경에서 개인이 spark를 사용해 데이터를 다뤄볼 수 있도록 docker desktop 사용하여 docker container로 패키징된 spark application, jupyter notebook, aws등 인프라에 연결 가능한 환경 개발

                • spark+jupyter
                • AWS Configure 설정
                • Extension 기본 설정
                • 이 외에 본인이 생각했을 때, 필요하다고 생각되는 부분

                정리

                A. (Local mode) Notebook에서 스파크를 이용한 데이터 처리 코드를 interactive하게 실행하고 실습하기 위한 환경

                B. (Cluster mode - standalone) spark-submit으로 스크립트 제출하여 spark job을 실행시키는 환경

                환경 분리 context

                기존 컴포즈 파일 의 경우 master, worker spark-cluster와 jupyter 컨테이너를 띄워서 주피터 상에서 spark-cluster 내의 스파크 엔진을 standalone cluster mode로 사용하게끔 설정이 되어있습니다.

                하지만 jupyterlab 컨테이너 자체에도 spark 가 설치되어있기 때문에, 노트북으로 실습하는 용도로 환경을 구성하는데에 spark-master, spark-worker도 함께 빌드하는게 불필요하다고 판단했습니다. 따라서 단순 pyspark 코드가 실행되는지 실습할때에는 (A)jupyterlab 컨테이너만 띄워 local mode(no cluster manager) 로 학습 및 개발이 진행되고, (B)클러스터의 경우 별도로(docker-compose_prod_test.yml) 띄울 수 있게끔 분리해두면 작업이 더 가벼워질 것이라 생각했습니다.

                추가적으로 해당 컴포즈 파일이 실제 작업에 사용하는 pc의 사양에서 사용하기에 메모리 점유가 높아 작업이 실패한다는 케이스가 있었습니다. jupyter 작업 환경을 최대한 가볍게 가져간다면 해당 문제 또한 해결될 것이라 기대합니다.


                🔗 관련 링크


                📌 진행상황

                *진행상황에 예상 마감 일정까지 함께 기재해주세요!!

                • A 환경 개발
                • A 환경 테스트
                • B 환경 개발 (~6/19)
                • B 환경 테스트 (~6/21)

                Metadata

                Metadata

                Assignees

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions