전체 글
-
[pytorch] nn.BatchNorm 알아보기AI-ML 2023. 12. 24. 08:37
- 목차 키워드.- Batch Normalization 들어가며.이번 글에서는 pytorch 의 BatchNorm 에 대해서 알아보려고 합니다.Batch Normalization 의 개념과 여러가지 사례들, 그리고 pytorch.nn.BatchNorm 의 활용법에 대해서 알아봅니다. Batch Normlization 이란 ?Batch Normalization 은 이름 그대로 Batch Data 를 대상으로 Normalization 을 적용합니다.여기서 Batch Data 는 Neural Network 로 순전파되는 Batch Size 의 입력 데이터를 의미합니다.pytorch 를 예로 들면, DataLoader 의 batch_size 에 설정된 Batch Size 를 의미합니다.아래의 이미지 예시와 같이..
-
Checksum 알아보기 (Data Integrity, 데이터 무결성, 체크섬)BigData 2023. 12. 23. 21:30
- 목차 소개. 데이터 무결성 (Data Integrity) 을 검증하는 하나의 방식인 checksum 에 대해서 알아보려고 합니다. 체크섬은 네트워크 트래픽이나 Disk IO 관점에서 주로 사용되는 방식이구요. Disk IO 도 하나의 네트워크라고 생각했을 때에 데이터가 전송되는 과정에서 올바르게 카피되었는지를 판단하는 하나의 방식입니다. 예를 들어, 인터넷을 통해서 파일을 다운로드하는 경우가 있습니다. 웹 브라우저를 통해서 어떠한 파일을 다운로드는 받을 때, 파일을 관리하는 파일서버는 웹브라우저라는 클라이언트에게 파일을 제공합니다. 파일 서버는 전송해야할 파일의 checksum 을 계산하고 클라이언트에게 checksum 을 제공합니다. 클라이언트는 시간을 들여 파일을 모두 다운로드받게 되며, 그 이후..
-
Spark Stage 알아보기Spark 2023. 12. 23. 20:26
- 목차 소개. Spark Program 은 작성된 RDD 의 또는 DataFrame 의 데이터 처리 흐름을 기반으로 실행 계획을 생성합니다. 실행 계획 또한 Logical Execution Plan 과 Physical Execution Plan 으로 나뉘는데요. Task 와 Stage 는 Physical Execution Plan 에 해당합니다. 이번 글에서 Spark 의 Task 와 Stage 는 무엇이며, 어떻게 실행되는지에 대해서 상세히 알아보려고 합니다. Task. Task 는 Spark 의 가장 작은 실행 단위입니다. Task 는 Executor 에서 실행이 되구요. Executor 는 단순히 JVM Process 라고 생각하시면 됩니다. 그리고 Task 는 Executor 에서 실행되는 JV..
-
Java off-heap 메모리 알아보기Language/Java 2023. 12. 22. 19:01
- 목차 소개. Java 로 작성된 프로그램은 JVM 이라는 가상 머신 위에서 동작합니다. OpenJDK, Correto, Zulu 등에 해당하는 여러 JDK 는 JVM 이라는 Java 가상 머신을 생성하게 되는데요. Java 프로그램이 실행될 때마다 JVM 은 생성되고, JVM 이 전적으로 Java 프로그램을 매니징하게 됩니다. ByteCode 를 실행하고 실행에 필요한 메모리를 관리하는데 Heap, Stack, Class 등으로 표현되는 여러 메모리를 관리합니다. 그리고 이러한 메모리들은 Garbage Collector 의 모니터링 대상이 되구요. Java 프로그램에서 생성하는 여러 객체들은 Garbar Collector 의 대상이 되므로 프로그래머의 관리 대상에서 제외되는 편리함이 있습니다. 오늘 ..
-
ASCII 코드 알아보기BigData 2023. 12. 22. 17:01
- 목차 소개. 아스키 코드 (ASCII Code) 는 American Standard Code 의 약자입니다. 아스키 코드는 대표적인 인코딩 표준 중의 하나인데요. 소문자 알파벳인 a 부터 z 까지, 대문자 알파벳인 A 부터 Z 까지 그리고 모든 아라비안 숫자와 특수문자를 인코딩하는 방식을 제공합니다. 아스키 코드는 미국에서 만들어진 표준 인코딩 방식이기 때문에 American Standard Code 라고 이름이 붙여졌습니다. 그래서 기본적으로 세계 각국의 문자들을 표현할 수 없는 한계를 지니고 있습니다. 이번 글에서는 아스키 코드에 대해서 알아보는 시간을 가지려고 합니다. 인코딩이란 ? 컴퓨터의 보급으로 전자문서라는 가상의 문서가 생깁니다. 그리고 문서들은 문자들로 구성이 되죠. 키보드로 타이핑하는..
-
[Kafka] Zookeeper 는 Broker 를 어떻게 관리할까 ?Kafka 2023. 12. 22. 07:49
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/484 Zookeeper Znode 알아보기 - 목차 소개. Zookeeper 는 Znode 라는 데이터 저장기능이 존재합니다. Znode 는 데이터를 저장할 수 있는 논리적인 개념인데요. Hadoop NameNode 의 Namespace 와 같이 가상의 저장 개념입니다. Znode 는 파일시 westlife0615.tistory.com https://westlife0615.tistory.com/485 Zookeeper Watch Mechanism 알아보기 - 목차 소개. Zookeeper 의 Watch Mechanism 은 클라이언트와 주키퍼의 양방향 통신을 가능하게 합니다. 클라이언트는 znode 를 생성/수정/..
-
Kafka Repartition 알아보기.Kafka 2023. 12. 22. 07:49
- 목차 소개. 이번 글에서는 카프카 토픽이 어떻게 repartition 되는지에 대해서 알아보고자 합니다. Repartition 은 토픽의 파티션을 여러 브로커로 분배하는 행위를 의미합니다. 토픽을 생성하게 되면 파티션의 갯수와 Replication-Factor 의 값을 설정합니다. 그리고 생성된 파티션들은 여러 브로커들로 분배되게 됩니다. 만약 브로커가 3개 그리고 토픽의 파티션이 3개라면 각각의 파티션들은 각 브로커에서 관리됩니다. 아래와 같이 말이죠. broker1 - partition1 broker2 - partition2 broker3 - partition3 하지만 브로커가 추가되거나, 제거되는 경우 그리고 파티션이 늘거나 줄어드는 경우에는 파티션의 재분배가 필요해집니다. Kafka Clust..
-
[Spark] Unresolved Logical Plan 알아보기Spark 2023. 12. 20. 07:31
- 목차 들어가며.Spark 는 RDD 가 아닌 DataFrame 또는 SQL 를 활용하여 연산을 수행할 때에 자동적으로 Query Optimization 이 수행됩니다.흔히 Predicate Pushdown, Column Pruning, Constant Folding 등의 유명한 최적화 방식들이 있는데요.관련한 최적화 방식들은 다른 글에서 설명할 수 있도록 해보겠습니다.돌아와서 Spark 는 Query Optimization 이 적용되며, 이를 책임지는 Spark 의 내부 요소를 Catalyst Optimizer 라고 부릅니다.즉, Catalyst Optimizer 에 의해서 SQL Query 또는 DataFrame 연산은 최적화됩니다.아래 이미지는 Catalyst Optimizer 에 의해서 수행되는..
-
Zookeeper Ensemble 알아보기 (Leader Election, Sequential Znode)Hadoop 2023. 12. 19. 04:44
- 목차 소개. ZooKeeper Ensemble 에 대해서 알아보려고 합니다. ZooKeeper 들로 구성된 하나의 클러스터이며, Leader-Follower 구성을 따릅니다. 하나의 Leader 가 존재하고, 나머지 ZooKeeper 서버들은 Follower 가 됩니다. 그래서 Leader 를 Replication 하죠. Leader ZooKeeper 가 전적으로 Znode 의 Write, Update, Delete 요청을 책임지며, 카프카나 하둡에 해당하는 클라이언트와 소통하게 됩니다. 그리고 ZooKeeper Ensemble 에서 Leader Election 또한 매우 중요한 부분인데요. 이 과정에서 사용되는 Sequential Znode 에 대해서도 알아보려고 합니다. ZooKeeper Ense..
-
Zookeeper Watch Mechanism 알아보기Hadoop 2023. 12. 19. 04:44
- 목차 소개. Zookeeper 의 Watch Mechanism 은 클라이언트와 주키퍼의 양방향 통신을 가능하게 합니다. 클라이언트는 znode 를 생성/수정/삭제/조회를 할 수 있습니다. 주키퍼는 이러한 클라이언트의 read/write 요청을 처리합니다. 그리고 주키퍼 또한 클라이언트에게 znode 의 상태를 공유할 수 있는데요. 이러한 방식으로 znode 상태 변경에 대한 이벤트를 주키퍼는 클라이언트에게 전달합니다. 카프카나 하둡의 네임노드와 같이 HA 를 구성해야하는 환경에서 주키퍼는 사용되는데요. 이번 글에서 주키퍼의 watch mechanism 에 대해서 알아보겠습니다. 어떤 방식으로 소통하게 될까? 클라이언트가 서버로부터 데이터를 받는 방식은 크게 2가지가 있습니다. 첫번째는 Polling ..