일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Decision Tree
- BFS
- Spark jdbc parallel read
- git stash
- Python
- enq: FB - contention
- SQL
- git init
- 의사결정나무
- 앙상블
- Oracle ASSM
- 통계분석
- 알고리즘
- 배깅
- git 기본명령어
- Collaborative filtering
- Spark 튜닝
- 네트워크
- Linux
- CF
- 리눅스 환경변수
- eda
- 데이터 분석
- Oracle 논리적 저장 구조
- 추천시스템
- Spark Data Read
- 랜덤포레스트
- 데이터분석
- airflow 정리
- 오라클 데이터 처리방식
- Today
- Total
목록Hadoop & Spark (6)
[Alex] 데이터 장인의 블로그
저번 글에 이어서 GC에 대해 공부해보고자 한다. 2022.12.19 - [Hadoop & Spark] - [JVM] 기본 개념 정리 Garbage Collector Heap 영역에서 동적으로 할당된 객체 중 사용하지 않은 객체을 탐지하여 해제하는 기능. 한정된 Heap 메모리를 효율적으로 사용하기 위한 방법. 자바 이전에는 프로그래머가 모든 프로그램 메모리를 관리했다고 한다. 하지만 자바에서는 JVM이 가비지 컬렉션이라는 프로세스를 통해 프로그램 메모리를 관리한다. 가비지 컬렉션은 자바 프로그램에서 사용되지 않는 메모리를 지속적으로 찾아내서 제거하는 역할을 한다. 단점 : GC 작업은 순수 오버헤드로 프로그램이 해야할 일을 하지 못하도록 하는 순간이다. Mark and Sweep Java가 채택하고 있..
Data Ingestion 단계에서 튜닝이 필요한 이유 . 내가 겪어본 케이스 중에서는 Data Ingestion 단계에서부터 튜닝이 필요한 경우는 다음과 같다. 1. Spark Job의 Task 중 데이터를 메모리에 올리는 시간이 생각보다 오래 걸린다. (비용, 쉬는 자원 발생) 때문에 병렬로 데이터를 한꺼번에 빠르게 가져와야 구동 시간을 그만큼 줄일 수 있다. 2. Data Ingestion 를 수행하는 task가 하나의 executor에 몰려서 GC Time (정확히 꼽자면 Major GC가 극악으로 발생하여 어마어마한 Job 실행시간을 늘려버리는 경우가 발생한다.) 이 케이스는 간헐적으로 발생하는 케이스였어서 배치로 실행시킨 spark job 이 이런 경우를 보였을때는 진짜 멘붕 그 자체 였다....
자바 컴파일 과정 자바 컴파일러는 .java 로 작성된 파일을 읽어 Class화 한다. Class 화 한다는 것은 바이트 코드로 변환하여 클래스 로더에 의해 JVM에 들어와 메모리 공간을 만들어주고 컴퓨터가 이해할 수 있는 기계어로 만든다는 것. 즉, 클래스 로더에 의해 클래스 파일 내 내용이 JVM 안의 메모리로 올라가고(Method Area), 기계어로 변환도 해주는 역할을 수행한다. JVM 이란? 이렇게 자바 바이트 코드화 된 반기계어는 아직 '컴퓨터'가 읽을 수 없는 바이트 코드를 뜻하며, JVM이 이 바이트 코드를 완전한 기계코드로 바꿔준다. JVM은 자바 가상머신으로 자바 프로그램을 실행시켜주는 가상 컴퓨터라고 생각하면 된다. Method Area에 배치된 자바 .class파일의 byte 코드..
Spark는 Mapreduce의 대체자 MapReduce의 경우 Disk에서 매번 데이터를 처음부터 읽어야한다. (-> RDD는 데이터를 처음부터 읽을 필요가 없게 만들어준다.) Spark는 데이터를 메모리에 올려서 연산 방식 데이터를 처음부터 읽어야할 필요가 없다. Spark는 반복적인 데이터 처리 작업에서 MapReduce보다 속도가 빠르다 Spark 의 활용사례 (장단점) 장점(사용 가능 바운더리) 데이터 전처리 집계 스트리밍 데이터 처리, 프로세싱 머신러닝 분석 단점(한계점) 단독 로컬 사용보다는 클러스터 환경에서 효과를 보임. (하둡, 카프카 등) Database를 대체할 수는 없음. 메모리 뿐만 아니라 CPU/GPU 스펙도 중요. RDD Resilient Distributed Dataset의 ..
환경 OS: Ubuntu 18.04 Python: 3.6.9 사전 설치 필요 Java 설치 Spark JVM 기반인 Scala 로 만들어져 있음. JAVA 설치가 되어있어야함. Spark 설치 http://spark.apache.org/downloads Downloads | Apache Spark Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS. Note that, Spark 2.x is pre-built with Scala 2.11 except version 2.4.2, which is pre-buil..
본 포스팅에 앞서 해당 내용은 T-academy의 '아파치 하둡 입문'의 강의 내용을 정리했음을 밝힙니다. Hadoop 이란? 분산 데이터베이스 + MapReduce 데이터를 저장, 프로세싱하는 Tool이라고 생각한다. 수천대 이상의 리눅스 기반 범용 서버들을 하나의 클러스터로 사용. 마스터 - 슬레이브 구조 파일은 Block 단위로 저장 Block 데이터의 복제본 유지로 인해 신뢰성 보장 데이터 처리의 지역성 보장 HDFS 분산 파일 시스템 Hive 하둡을 SQL과 비슷하게 사용할 수 있도록 하는 프레임워크 하둡에 저장되어있는 데이터를 사용하는 방법. Kafka 분산 스트리밍 플랫폼. 메시징, 메트릭 수집, 로그 수집, 스트림 처리 등 다양한 용도로 사용할 수 있음. 빠름: 수천개의 데이터 소스로 부터..