분류 전체보기(31)
-
Spark로 HDFS 데이터 활용하기 (+ pandas, time range filter)
python 기반입니다 HDFS 데이터 spark로 불러오기 HDFS(Hadoop File System)으로 저장 돼 있는 데이터를 주피터 노트북에 불러와서 스파크 데이터 프레임으로 활용하는 일이 종종 있다. 첫 번 째로 Spark Session을 열어줘야 된다. SparkSession은 인스턴스 생성을 위한 build() 메서드를 제공하는데, 이 메서드를 통해 인스턴스를 재사용 하거나 새로 생성할 수 있다. from pyspark.sql.session import SparkSession import pyspark.sql.functions as F # SparkSession 인스턴스 생성 spark = SparkSession.builder.appName('deepjin').getOrCreate() 위 과..
2020.07.22 -
[Linux] screen 명령어로 백그라운드 프로세스 띄우기
screen은 서비스를 데몬으로 동작시킬 수 있게 해주는 명령어다. 데몬이란 리눅스 시스템이 가동될 때 실행되는 백그라운드 프로세스의 일종이다. A daemon is a long-running background process that answers for services. The term originated with Unix, but most operating systems use daemons in some form or another. In Unix, the names of daemons conventionally end in "d". Some examples include inetd, httpd, nfsd, named, and lpd. ㅡ 인디아나 주립대학교 날리지베이스에 정의된 daemon in..
2020.07.13 -
[Kafka] 카프카 주요 개념 정리
Apache Kafka는 분산 메시징 시스템(A high-throuhput distributed messaging system)이다. 2011년 링크드인에서 처음 개발 됐다. 자사 웹사이트의 이벤트 체크 목적으로 만들어지기 시작했고 2014년 아파치 재단으로 이관 됐다. Architecture 카프카는 발행-구독(publish-subscribe) 모델을 기반으로 동작한다. Producer가 데이터를 발행하고, Consumer가 구독하는 토픽의 데이터를 가져오는 구조다. 중간에서 Producer가 전달하는 데이터를 받는 클러스터를 Broker라고 한다. 고가용성(Fault tolerant, High Availability) 및 확장성(Scalability) 카프카를 논할 때 이 두 가지 특성이 빠지면 섭하..
2020.05.30 -
[Kafka] 카프카 실행, 토픽 생성, 메시지 테스트
Flafka(Flume + Kafka)를 구성하기 위한 카프카 테스트 (mac 기준) KAFKA 실행 Flume에서 데이터를 보내기 위해 알맞은 kafka 토픽을 생성해야 된다. zookeeper가 kafka의 노드를 관리하기 때문에 zookeeper부터 실행시켜보자. cf) 주키퍼랑 카프카는 모두 homebrew로 설치했고, HOME PATH 설정을 마쳤다. property 경로는 아래를 참고하면 된다. # zookeeper config PATH $KAFKA_HOME/conf/zookeeper.properties # kafka config PATH $KAFKA_HOME/conf/server.properties KAFKA_HOME 같은 경우는 본인이 카프카를 설치한 경로로 bash에 저장해주자. mac같..
2020.05.24 -
Spring Boot 의존성 설정 (spring-boot-starter, spring-boot-starter-parent)
(Maven 기준) 파이썬에 pip이 있다면 자바 스프링에는 maven, gradle같은 빌드 툴이 있다. 스프링은 빌드 툴로 부터 어플리케이션에 필요한 라이브러리를 다운로드 받아 사용한다. 자바 라이브러리간의 관계를 의존성이라고 부르는 것 같다. 스프링의 의존성은 버전 영향을 많이 받는다. 스프링 부트 의존성(spring boot dependencies)은 org.springframework.boot라는 groupId를 사용한다. 전형적으로 메이븐 pom 파일이 spring-boot-starter-parent 프로젝트로부터 상속받고, 하나 혹은 두 개 이상의 Starters를 선언한다. 또한, 스프링 부트는 실행가능한 jar를 만들기 위해 선택적으로 Maven plugin을 제공한다. 개발 분야에 따라..
2020.05.21 -
Flume OG, NG, Property
Apache Flume 심화 지난 글에서 Apache Flume(이하 플룸)에 대한 기본 개념을 살펴봤다. 업무에서 쓰다보니 깊어지는 내용들이 있어서 좀 더 정리해보려고 한다. Flume OG / Flume NG OG = Old Generation / NG = Next Generation의 약자다. Flume OG의 몇 가지 이슈와 한계를 해결하기 위해 몇 가지 코어 클래스와 시스템이 리팩토링 되었다. Flume OG Flume OG는 Agent Node, Collector Node, Master Node로 나뉘어 있다. Agent가 모은 로그 데이터를 Collector로 보내고, Collector가 어떤 저장소로 데이터를 전송할지 정해준다. 그리고 이런 데이터 플로우를 컨트롤 해주는 게 Master의 ..
2020.04.14