Computer Science(18)
-
SSH 로컬 포트 포워딩 (SSH 터널링)
SSH 로컬 포트 포워딩 (SSH 터널링) 포트 포워딩 방식에는 3가지가 있는데(Local, Remote, Dynamic), 이번 포스팅에서는 회사에서 주로 쓰고 있는 Local Port Forwarding만 다룰 것이다. 로컬 포트 포워딩을 이해하기 위해서는 3가지 주인공이 필요하다. SSH-Client : 웹 서버로의 접근을 원하는 서버 혹은 Local PC SSH-Server : 접근할 웹 서버를 담고 있는 서버, 22번 포트가 열려 있다고 가정할 때 이것을 통해서 웹 서버에 접근한다 Web server : SSH-Client가 접근을 원하는 웹 서버, Nginx 서버고 80번 포트에 바인딩 돼 있다고 가정하자 좀 더 직관적인 이해를 위해 그림 추가 그림을 보면 클라이언트가 SSH-Server에 접..
2020.08.30 -
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