빅데이터 하둡 프로그래밍 교육과정] Spark

 

빅데이터 하둡 프로그래밍 교육과정] Spark

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


Spark

* 성능


* Fast


* Spark stack


* Interface
 - Scala
   : 매우 간결한 표현이 가능한 언어
   : REPL(aka Shell) 제공, interactive하게 데이터를 다루는 것이 가능
   : Functional Programming이 가능하므로 MapReduce와 같은functional한 개  념을 표현하기에 적합함

* 확장 프로젝트
 - Spark SQL
 - Spark Streaming
 - MLLib
 - GraphX
 - SparkR
 - Zeppelin
 - 등 …

* 장점
 - 시간과 비용을 아껴준다
 - 수십대의 Hadoop Cluster를 10대 이하의 Cluster로 대체할  수 있다
 - 수십분 기다려야 하던 작업이 1분만에 완료된다
 - 작업 능률 향상
 - MR 작업 코드 만들고, 패키징하고, submit하고 하던 복잡한  과정이,shell에서 코드 한줄 치는것으로 대체된다
 - 처음 접하는 사람도 배우기 쉽다
 - 다양한 제품을 조합해야 했던 작업이 Spark으로 다 가능하다 









 

 

 

 

 

 

 

빅데이터 하둡 프로그래밍 교육과정] RDD

 

빅데이터 하둡 프로그래밍 교육과정] RDD

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



RDD
Resilient Distributed Dataset
탄력적으로 분산된 데이터셋
클러스터에 분산된 메모리를 활용하여 계산되는 List
데이터를 어떻게 구해낼지를 표현하는 Transformation 을 기술한  Lineage(계보)를 interactive하게 만들어 낸 후, Action을 통해 lazy하게 값을  구해냄
클러스터 중 일부의 고장 등으로 작업이 중간에 실패하더라도, Lineage를 통  해 데이터를 복구

빅데이터 하둡 프로그래밍 교육과정] MapReduce / Hive

 

빅데이터 하둡 프로그래밍 교육과정] MapReduce / Hive

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


MapReduce / Hive

 * MapReduce / Hive 장단점
  - 장점
  : 빅데이터 시대를 열어준 선구적인 기술
  : 거대한 데이터를 안정적으로 처리
  : 많은 사람들이 사용 중
 - 단점
  : 오래된 기술이다 보니, 발전이 느리다
  : 불편한점이 많다

* MapReduce의 문제점
  - MapReduce는 Map의 입출력 및 Reduce의 입출력을  매번 HDFS에 쓰고, 읽는다
  - MapReduce코드는 작성하기 불편하다 

빅데이터 하둡 프로그래밍 교육과정] 빅데이터분석의 시초

 

빅데이터 하둡 프로그래밍 교육과정] 빅데이터분석의 시초

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


빅데이터분석의 시초

 - GFS(Google File System) 논문 (2003)
  : 여러 컴퓨터를 연결하여 저장용량과 I/O성능을 scale
  : 이를 구현한 오픈소스 프로젝트인 Hadoop HDFS

 - MapReduce논문 (2004)
  : Map과 Reduce연산을 조합하여 클러스터에서 실행, 큰  테이터를 처리
​  : 이를 구현한 오픈소스 프로젝트인 Hadoop MapReduce

 - Hive
  : MapReduce 코드를 짜는건 괴롭다
  : 쿼리로 MapReduce의 거의 모든 기능을 표현할 수 있다!
  : HDFS등에 있는 파일을 읽어들여 쿼리로 분석 수행
  : HiveQL 을 작성하면 MapReduce 코드로 변환되어 실행


빅데이터 하둡 프로그래밍 교육과정] sqoop

 

빅데이터 하둡 프로그래밍 교육과정] sqoop

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



sqoop

 - Sql to Hadoop
 - RDBMS로 부터 수집/저장
    : 별도의 로그 수집 시스템 및 데이터 저장소가 마련되  지 않아 Oracle, MySQL 등의 RDBMS에 로그를 저장  하는 경우.
    : 로그 뿐 아니라, 메타성 데이터는 대부분 RDBMS에  저장되어 있는데, 이 RDBMS의 메타 데이터를  Hadoop, Hive 등으로 옮겨야 하는 경우
    : 분산 환경의 Hadoop, Hive 등에서 분석된 결과를 API  형태가 아닌 원격의 RDBMS로 전송할 경우

 - Sqoop 1 / Sqoop 2


 - import


 - Export 





 

 

 

 

빅데이터 하둡 프로그래밍 교육과정] Flume 활용

 

빅데이터 하둡 프로그래밍 교육과정] Flume 활용

 

 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



Flume 활용


하둡 클러스터 내 노드들의 로그 수집
웹 서버, 메일 서버 같은 기존 시스템들의 로그 수집
광고 네트워크 애플리케이션들의 노출 정보 수집
시스템들의 성능 정보 수집
기본적인 온라인 스트리밍 분석
 

빅데이터 하둡 프로그래밍 교육과정] Flow 설정

 

빅데이터 하둡 프로그래밍 교육과정] Flow 설정

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



Flow 설정
– To Define flow, link ‘source’ and ‘sink’ via ‘channel’

# list the sources, sinks and channels for the  agent
<Agent>.sources = <Source>
<Agent>.sinks = <Sink>
<Agent>.channels = <Channel1> <Channel2>

# set channel for source
<Agent>.sources.<Source>.channels = <Channel1><Channel2> ...

# set channel for sink
<Agent>.sinks.<Sink>.channel = <Channel1>

빅데이터 하둡 프로그래밍 교육과정] Agent

 

빅데이터 하둡 프로그래밍 교육과정] Agent

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



Agent

* Source
 - avro : Avro 클라이언트에서 전송하는 이벤트를 입력으로 사용,  Agent와 Agent를 연결해줄 때 유용
 - netcat : TCP로 라인 단위 수집
 - seq : 0부터 1씩 증가하는 EVENT 생성
 - exec : System Command를 수행하고 출력 내용을 수집
 - syslogtcp : System 로그를 입력으로 사용
 - spooldir : Spooling Directory 디렉토리에 새롭게 추가되는 파일을 데이터로 사용
 - thirft : Thrift 클라이언트에서 전송하는 이벤트를 입력으로 사용
 - jms : JMS 메시지 수집
 - Customize

*Channel
 - memory : Source에서 받은 이벤트를 Memory에 가지고 있는 구조  로, 간편하고 빠른 고성능(High Throughput)을 제공하지만 이벤트  유실 가능성이 있다. 즉, 프로세스가 비정상적으로 죽을 경우 데이  터가 유실될 수 있다.
 - jdbc : JDBC로 저장
 - file : JDBC와 마찬가지로 속도는 Memory기반에 비해 느리지만, 프  로세스가 비정상적으로 죽더라도 transactional하게 프로세스를 재  시작하여 재처리하여 이벤트 유실이 없는 것이 장점이 있다.
 - Customize

*Sink
 - null : 이벤트를 버림
 - logger : 테스트 또는 디버깅을 위한 로깅
 - avro : 다른 Avro 서버(Avro Source)로 이벤트 전달
 - hdfs : HDFS에 저장
 - hbase : HBase에 저장
 - elasticsearch : 이벤트를 변환해서 ElasticSearch에 저장
 - file_roll : 로컬 파일에 저장
 - thrift : 다른 Thrift 서버(Thrift Source)로 이벤트 전달
 - Customize 

+ Recent posts