2024/01 23

Kafka와 Spark Streaming_(4, 5)

Kafka Topic 파라미터 설정 Topic 생성시 다수의 Partition이나 Replica를 주려할 때 KafkaAdminClient 오브젝트 생성 후 create_topics 함수로 Topic 추가 create_topics의 인자로는 NewTopic 클래스의 오브젝트 지정 client = KafkaAdminClient(bootstrap_servers=bootstrap_servers) topic = NewTopic( name=name, num_partitions=partitions, # partition의 수 = 1 replication_factor=replica) # Replication의 수 = 1 client.create_topics([topic]) Kafka Producer의 파라미터 파라미..

Kafka와 Spark Streaming_(2, 3)

Kafka란? 실시간 데이터를 처리하기 위한 오픈소스 분산 스트리밍 플랫폼 데이터 재생이 가능한 분산 커밋 로그 (Distributed Commit Log) Scalability와 Fault Tolerance를 제공하는 Publish-Subscription 메시징 시스템 Producer-Consumer High Throughput과 Low Latency를 실시간 데이터 처리에 맞게 구현 분산 아키텍처를 따르기 때문에 Scale Out이란 형태로 스케일 가능 서버 추가를 통해 Scalability 달성 (서버 = Broker) 정해진 보유기한 (retention period) 동안 메시지를 저장 기존 메시징 시스템 및 DB와의 비교 kafka는 메시지를 보유 기간 동안 저장 소비자가 오프라인 상태일 때에도..

Kafka와 Spark Streaming_(1)

실시간 데이터 처리 데이터 처리의 일반적인 단계 데이터 수집 (Data Collection) 데이터 저장 (Data Storage) 데이터 처리 (Data Processing) 데이터 처리의 고도화 처음에는 배치로 시작 처리할 수 있는 데이터 양이 중요 서비스가 고도화되면 점점 더 실시간 처리 요구가 생기기 시작 Realtime 처리 vs Semi Realtime 처리 동일 데이터 소비가 필요한 케이스 증가 : 다수의 데이터 소비자 등장 처리량 (Throughput) vs 지연시간 (Latency) 처리량 : 주어진 단위 시간 동안 처리할 수 있는 데이터의 양 (배치 시스템에서 가장 중요) - 처리량이 클수록 처리할 수 있는 데이터 양이 큼 (데이터 웨어하우스에서 중요) 지연시간 : 데이터를 처리하는데 ..

하둡&Spark_(2)

Spark 빅데이터 처리를 위한 오픈소스 분산 처리 플랫폼 Spark 데이터 처리 흐름 데이터프레임(DF)은 작은 파티션들로 구성 데이터프레임은 한 번 만들어지면 수정 불가 (Immutable) 입력 데이터프레임을 원하는 결과 도출까지 다른 데이터 프레임으로 계속 변환 sort, group by, filter, map, join .... 셔플링 : 파티션 간에 데이터 이동이 필요한 경우 발생 셔플링이 발생하는 경우 명시적 파티션을 새롭게 하는 경우 (Ex_파티션 수 줄이기) 시스템에 의해 이뤄지는 셔플링 (Ex_그룹핑에서의 aggregation, sorting) 셔플링이 발생할 때 네트워크를 타고 데이터가 이동 파티션의 개수는 spark.sql.shuffle.partitions가 결정 (기본값은 200이..

하둡&Spark_(1)

빅데이터 서버 한 대로 처리할 수 없는 데이터 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 4V (Volume, Velocity, Variety, Varecity) Volume - 데이터의 크기 Velocity - 데이터의 처리속도 Variety - 구조화/비구조화 데이터 Varecity - 데이터의 품질 빅데이터의 예 웹 수십 조개 이상의 웹 페이지 존재 -> 온갖 종류의 지식의 바다 웹 검색엔진 개발은 진정한 대용량 처리 사용자 검색어와 클릭 정보 자체도 대용량 요즘은 웹 자체가 NLP 거대 모델 개발의 훈련 데이터로 사용 빅데이터의 처리 특징 큰 데이터를 손실없이 보관할 방법 필요 : 스토리지 처리 시간이 오래 걸림 : 병렬처리 빅데이터는 비구조화 된 데이터일 가능성이 높음 : SQL 만으로..

3차 프로젝트_(5)

pythonOperator에서의 op_args, op_kwargs 두 가지의 공통점은 변수를 전달해주는 역할 op_args list 형태의 인수 전달 operator를 생성할 때 op_args 변수로 전달 op_kwargs Dictionary 형태의 인수 전달 operator에 전달 되는 모든 변수를 전달 op_kwargs의 키에 맞는 변수를 선언하면 자동으로 전달 params는 airflow DAG를 실행할 때 전달한 파라미터 (Trigger DAG w / config 사용) op_args 예제 코드 t1 = PythonOperator( task_id='print_test', python_callable=print, op_args=["hello", "world"], dag=dag ) 결과 값 더보기 h..

728x90