Tools 49

빅데이터, 하둡 및 Spark 소개

하둡의 간단한 소개 하둡은 데이터 지역성이라는 개념에 바탕을 둔 데이터 저장 및 처리 플랫폼이다. 데이터 지역성은 요청한 데이터를 원격 처리 시스템이나 호스트로 보내 처리하는 기존의 방식 대신 데이터가 있는 곳으로 이동해서 계산하는 데이터 처리 방식을 말한다. 즉 클러스터를 구성하는 각 클러스터 노드에서 데이터를 보관 , 처리한 결과를 종합하여 원하는 결과를 취하는 방식이다. 하둡은 데이터를 분산 , 처리 하기 위하여 HDFS , YARN 이라는 아키텍쳐를 구성하고 있다. 하둡의 기본 구성요소 : https://chalchichi.tistory.com/77\ Hadoop 컴퓨팅과 클러스터 DFS 하둡의 분산 파일 시스템(Distributed File System, DFS)은 하둡 에코시스템의 핵심 구성 ..

Tools/Spark 2024.02.18

Apache Spark 설정 및 튜닝

Spark 메모리 사용 예시 매개변수설명 spark.memory.fraction (기본값 0.75) 실행 및 저장에 사용되는 힙 공간의 비율입니다. 이 값이 낮을수록 유출 및 캐시된 데이터 제거가 더 자주 발생합니다. 이 구성의 목적은 내부 메타데이터, 사용자 데이터 구조 및 희소하고 비정상적으로 큰 레코드의 경우 부정확한 크기 추정을 위한 메모리를 따로 확보하는 것입니다. spark.memory.storageFraction (기본값 0.5) spark.memory.fraction 에 의해 따로 설정된 공간 내 저장 영역의 크기입니다 . 캐시된 데이터는 총 스토리지가 이 영역을 초과하는 경우에만 제거될 수 있습니다. 1. spark.excutor.memory 프로퍼티에 4GB 설정된 상황(4096) 2...

Tools/Spark 2023.10.17

하둡 클러스터와 리소스 할당

- 특정 상황에서 데이터 분석가들에게 대부분의 리소스가 할당되어 SLA(서비스 수준 협약)을 준수 하지 못하는 경우가 있다. - 데이터 엔지니어링 측면에서 중요한 잡들이 동작함과 동시에 데이터 분석에 필요한 리소스를 제공할 수있어야 한다. Capacity 스케줄러 - https://blog.cloudera.com/yarn-capacity-scheduler/ capacity 및 계층적 설계 YARN은 현재 메모리 및/또는 코어에 대해 예약하는 리소스에 대한 최소 할당과 최대 할당을 정의합니다. YARN용 작업자를 실행하는 각 서버에는 예약에 사용할 수 있는 메모리 및/또는 코어가 될 수 있는 리소스 할당을 제공하는 NodeManager가 있습니다. 모든 노드 관리자의 리소스 집합은 capacity 스케줄러..

Tools/Hadoop 2023.09.26

하둡 네임노드와 HDFS

네임노드와 HDFS의 관계 네임노드와 데이터 노드 등록: 데이터 노드가 클러스터에 가입하려면 네임노드에 자신의 존재를 등록해야 합니다. 데이터 노드는 주기적으로 네임노드에 하트비트 신호를 보내어 자신의 상태를 알립니다. 블록 리포트: 데이터 노드는 자신이 저장하고 있는 데이터 블록의 목록을 네임노드에 보고합니다. 이 정보는 네임노드의 메모리에 저장되어 파일 시스템의 메타데이터를 관리하는 데 사용됩니다. 블록 읽기 및 쓰기 요청: 클라이언트가 데이터를 읽거나 쓰려면 먼저 네임노드에게 해당 데이터 블록의 위치 정보를 요청합니다. 네임노드는 클라이언트에게 데이터 블록의 데이터 노드 위치 정보를 제공합니다. 데이터 노드 간 직접 통신: 클라이언트가 데이터를 읽거나 쓸 때, 실제 데이터는 데이터 노드 간 직접 통..

Tools/Hadoop 2023.09.11

Spark와 RDD

RDD, DataFrame,DataSet Resilient Distributed Dataset (RDD)는 Apache Spark에서 데이터 처리를 위한 기본 추상화입니다. Spark는 대규모 데이터 처리를 위한 분산 컴퓨팅 프레임워크로, RDD는 이를 구성하는 핵심 개념 중 하나입니다. RDD는 데이터의 불변성과 분할 가능성을 결합하여 데이터 처리를 효율적으로 수행할 수 있도록 돕습니다. 다음은 RDD에 대한 주요 특징과 개념입니다: 불변성 (Immutability): RDD는 한 번 생성되면 변경할 수 없습니다. 즉, 데이터는 읽기 전용이며 수정이 불가능합니다. 이로써 데이터의 안정성과 일관성을 보장합니다. 분할 가능성 (Partitioning): RDD는 논리적으로 분할된 여러 개의 파티션으로 구성..

Tools/Spark 2023.08.18

Kubernetes PV & PVC

볼륨 (Volume): Kubernetes에서 볼륨은 컨테이너 내부와 외부 간의 데이터를 공유하기 위한 방법입니다. 볼륨은 컨테이너의 파일 시스템과 독립적으로 존재하며, 컨테이너가 종료되더라도 데이터가 보존됩니다. 예를 들어, 컨테이너 내부에서 생성한 데이터를 다른 컨테이너에서 사용하거나 호스트 시스템의 파일 시스템에 접근할 때 볼륨을 사용할 수 있습니다. 볼륨은 컨테이너에 지속적인 데이터 저장을 제공하지만, 볼륨 자체는 별도의 수명 주기나 관리를 가지지 않습니다. - 호스트 볼륨/nfs/iSCI/Ceph - 컨테이너와 별개의 리소스 영역 , 노드의 스토리지 영역 영구 볼륨 (Persistent Volume): 영구 볼륨은 클러스터 내에서 생성되고 관리되는 스토리지 리소스입니다. 이러한 볼륨은 클러스터 ..

Tools/K8S 2023.08.12

Kubernetes Secret

기본적인 환경 변수 사용 환경변수는 컨테이너 내에서 설정되는 간단한 키-값 쌍으로, 애플리케이션의 동작을 조정하는 데 유용 apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: my-app-image env: - name: ENV_VARIABLE_1 value: "value1" - name: ENV_VARIABLE_2 value: "value2" 위와 같이 ENV_VARIABLE_1 : "value1" 등의 값을 정적 설정을 통해서 사용 가능 kubectl exec -it sample-env --env | grep ENV_VARIABLE_1 으로 확인 가능함 아래와 같이 타임존에 대해서 UT..

Tools/K8S 2023.07.21

Hadoop YARN 아키텍쳐

* 클라이언트 : 얀으로 실행할 잡을 summit 하는 프로그램 * 잡 : 하나이상의 태스크를 포함하는 애플리케이션 * 태스크 : 맵퍼와 리듀스가 수행한 작업들 * 맵퍼와 리듀스는 각 컨테이너 내에서 동작 YARN(Yet Another Resource Negotiator) 서비스 : HDFS처럼 마스터 노드와 워커 노드 양쪽에서 모두 동작하는 서비스 리소스 관리와 작업 스케줄링을 담당하는 프레임워크 컨테이너 (Container): 컨테이너는 어플리케이션의 실행 환경을 캡슐화하는 단위입니다. 컨테이너는 작업 실행에 필요한 리소스(메모리, CPU 등)를 가지고 있으며, 노드매니저에 의해 제어됩니다. 각 앱마스터는 리소스매니저로부터 할당받은 컨테이너를 이용하여 작업을 실행합니다. 리소스매니저 (Resource..

Tools/Hadoop 2023.07.02

Hadoop HDFS 아키텍쳐

마스터 노드와 워커(slave) 노드 마스터 노드 : 클러스터의 작업을 중재, 클라이언트들이 실제로 컴퓨팅을 하기 위해 접속하는 노드 , 3~6개 정도로 구성 네임노드 (NameNode): 마스터 노드 중 하나는 네임노드로 역할을 수행합니다. 네임노드는 메타데이터를 관리하고, 데이터 블록의 위치를 추적합니다. 클라이언트 요청에 대한 응답으로 데이터 블록을 검색하고 조정하여 데이터의 신뢰성과 가용성을 제공합니다. 잡 트래커 (JobTracker): 마스터 노드의 다른 주요 구성 요소는 잡 트래커입니다. 잡 트래커는 사용자가 제출한 작업을 관리하고 클러스터 내의 워커 노드에 할당하여 작업을 실행합니다. 작업의 진행 상황을 모니터링하고 실패한 작업을 다시 할당하여 장애 복구를 수행합니다. 보조 네임노드 (Se..

Tools/Hadoop 2023.07.02