분류 전체보기
-
python 시간 계산Programming/Python 2022. 4. 20. 15:27
start_dt = '2022-04-20 00:05:34' end_dt = '2022-04-20 12:19:17' from datetime import datetime def get_seconds(start_dt,end_dt,fm='%Y-%m-%d %H:%M:%S'): time_1 = datetime.strptime(start_dt,fm) time_2 = datetime.strptime(end_dt,fm) return (time_2 - time_1).seconds get_seconds(start_dt,end_dt) Result: 44023
-
Tensorflow-tutorial / Test Code 모음집Machine Learning/Tensorflow 2022. 4. 11. 14:27
https://github.com/Joonyeong97/Tensorflow-tutorial GitHub - Joonyeong97/Tensorflow-tutorial: GitHub Desktop tutorial repository GitHub Desktop tutorial repository. Contribute to Joonyeong97/Tensorflow-tutorial development by creating an account on GitHub. github.com git clone https://github.com/Joonyeong97/Tensorflow-tutorial.git
-
JAVA 직렬화(Serialize)란?Programming 2022. 3. 20. 21:11
Serialize(직렬화)가 무엇인가? 객체를 데이터스트림으로 만드는것이다. 즉 객체에 저장된 데이터를 스트림에 쓰기위해 연속적인 데이터를 변환하는것. 반대로 스트림으로부터 데이터를 읽어 객체를 만드는것은 역직렬화(Deserialization)입니다. 직렬화 사용이유는 객체 자체를 영속적으로 보관할때 사용하는데 파일형태로 저장되어 네트워크를 통해 전송이 가능합니다. 장점으로는 자바와 자바시스템간 개발이 최적화가 되어있어 다른 라이브러리나 추가적인 환경구성이 필요없고 또한 역직렬화 할 경우 기존 객체처럼 사용이 가능합니다. JVM(Java Virtual Machine)의 메모리에 상주(힙 or 스택)되어 있는 객체데이터를 바이트로 변환하는 기술입니다. 직렬화방법은 여러 Format이 존재합니다. -표형태의..
-
Spark Join Tuning & Key Salting / Part 3Data Engineering/Apache Spark 2022. 3. 5. 15:40
1. Sort Merge Join 1-1. 개요 1-2. 이상적인 성능을 발휘하려면 2. Broadcast Join 2-1. 개요 3. Shuffle Hash Join 3-1. 개요 효율적인 Join을 방해하는 것들 Data Skewness를 해결하려면? Key Salting Key Salting 이란? Salting Method 예제 Reference Spark에서 join을 수행하는 경우는 크게 두 가지로 나눌 수 있다. (1) 큰 테이블과 작은 테이블을 조인 또는 (2) 큰 테이블과 큰 테이블을 조인. Spark은 join을 수행하기 위해 Sort Merge Join, Broadcast Join, Shuffle Hash Join 등의 방법을 제공한다. 핵심 키워드 : sort merge join, ..
-
Spark Partitions Tuning / Part 02Data Engineering/Apache Spark 2022. 3. 4. 14:57
목차 Partitioning 이란? Partitioning의 종류 Partitioning을 안할 경우 Partitioning을 할 경우 주의사항 파티셔닝을 사용하면 도움이 되는 연산들 coalesce와 repartition 차이점 Partition의 종류 (Read, Write, Shuffle) Input Partition Output Partition Shuffle Partition Shuffle Partition Tuning 최적화 실험 실험 구성 예시 코드 실험 1: 코어 수에 맞게 파티션 수 설정(대조군) 결과 실험 2: 파티션 수 6배 증대 결과 실험 3: 쿼리 최적화 결과 실험 4: 최적화 후 코어당 메모리 감소 최적화 실험 결론: 최적화 시 고려할 점 참고 각 실험별 정리 최종 결론 Refe..
-
Spark 기본기(Executor Tuning) / Part 01Data Engineering/Apache Spark 2022. 3. 3. 13:47
1 클러스터 관리자 유형 1.1 Standalone 1.2 Apache Mesos 1.3 Hadoop YARN 2 Spark의 Memory 관리 2.1 Existing memory management 2.2 Storage memory management 3 Spark를 띄울때 가장 기본적으로 설정해야하는 요소.Driver와 Executor의 사이즈와 개수는 어떻게 정하는 것이 좋을까? 3.1 EXECUTOR의 역할 3.2 다수의 작은 executor가 좋을까? VS 소수의 큰 executor가 좋을까? 3.2.1 다수의 작은 executor의 두가지 문제 3.2.2 소수의 큰 executor의 두가지 문제 3.2.3 효율적 세팅을 위해서 3.3 결론 4 Spark Application 실행 과정(흐름) ..
-
spark-submit 하드웨어 옵션 체크하기Data Engineering/Apache Spark 2022. 2. 7. 14:44
페이지 참고사항 (계산식) https://aws.amazon.com/ko/blogs/big-data/best-practices-for-successfully-managing-memory-for-apache-spark-applications-on-amazon-emr/#:~:text=For example%2C the default for,application based on the workloads. 계산된 옵션 목록 executor-cores executor-memory spark.driver.cores driver-memory num_executors spark.default.parallelism Linux Cpu, Memory 확인 방법 # Cpu core 확인 lscpu # Memory 확인 free..
-
Linux를 처음 사용하면 꼭 배워야할 자료들OS/Linux 2021. 9. 8. 17:35
데이터 엔지니어 실무에서 사용하기 위하여 기본적으로 알아야 하는 리눅스 사이트 정리 글 centos랑 ubuntu는 비슷하면서도 다릅니다. 만든 사람이 다르니깐요. 주로 실무에서는 centos를 서버용으로 많이 씁니다. ubuntu는 docker image에 많이들 사용하구요. 주로 많이 다른 점은 아무래도, 프로그램을 설치할 때 다릅니다. ubuntu는 apt or apt-get으로 centos는 yum으로 둘다 패키징을 설치해주는 프로그램입니다. 다운 받을 패키지를 업데이트하고 그런 점은 비슷하다고 볼 수 있겠네요. 1. 기본 Shell script 사용 방법 - 변수 및 for, if, 함수 등등 https://reakwon.tistory.com/136 2. Inode 및 Symbolic link ..