SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
APACHE AVRO
Software Maestro 3기 한진수
목차
1. 소개	

2. 장점	

3. 지원 언어	

4. Serialization	

5. Example	

6. 속도	

7. 참고
소개
RPC format이다.
File format이다.
Serialization Framework이다.
- 기존 Frameworks는 크게 protocol buffer, thrift가 있다.
Doug Cutting이 만들었다.
장점
thrift나 protocol buffer로 쓰고 읽을 수 있다.
다양한 Language를 지원한다.
generic type에 의해서 dynamic language와 쉽게 통합이 잘 된다.
지원 언어
Avro Serialization
Schema Language 가 JSON이다 (모든 언어는 JSON Parser가 존재하기때문)
주어진 언어로 데이터 읽고 쓰기가 구현이 가능하다.
Avro Serialization - Primitive Types
Type
null
boolean
int
long
float
double
bytes
string

Desc
no value
a binary value
long
64-bit signed integer
single precision (32-bit) IEEE 754 floating point number
double precision (64-bit) IEEE 754 floating-point number

sequence of 8-bit unsigned bytes
unicode character sequence

{ “type” : “string” } 의 꼴로 표현된다.
Avro Serialization - Complex Types
Type

Desc

Recodes

Use the type name “recode”

Enums

Use the type name “enum”

Arrays

Use the type name “array”

Maps

Use the type name “map”

Unions

Unions are represented using JSON arrays.	

Unisons my not contain more than one schema with the same type

Fixed

Use the type name “fixed”

진짜로 Complex하다. 맨뒤 레퍼런스 참고.
Example - Avro 독립 예제
Example - Avro + Flume
Example.conf 파일

avro로	

localhost에 포트 33333에서	

받을 거에요
Example - Avro + Flume
Example.conf 파일

avro로	

localhost에 포트 33333에서	

받을 거에요
log4j로 기록할 것이고요
Example - Avro + Flume
agent 실행 -> 대기
client 실행
잘 받아서 저장했다.
Example - Avro + Flume2
Client

Source

Channel
Agent

Avro

Sink

Source

Channel

Sink

Agent
File Rolling
Example - Avro + Flume2
속도 - Total

썩 빠른 편은 아니다.
속도 - Size

작다.
참고
Apache Avro : http://avro.apache.org	

Slideshare : http://www.slideshare.net/ChicagoHUG/avro-chug-20120416	

http://www.slideshare.net/hadoopusergroup/3-avrohug20100721	

Types : http://avro.apache.org/docs/current/spec.html#schema_primitive	

Avro-RPC-Quickstart : https://github.com/phunt/avro-rpc-quickstart	

benchmarking : https://code.google.com/p/thrift-protobuf-compare/wiki/
BenchmarkingV2

Mais conteúdo relacionado

Mais procurados

Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
Assembly 스터디 2
Assembly 스터디 2Assembly 스터디 2
Assembly 스터디 2Jinkyoung Kim
 
Windows reversing study_basic_9
Windows reversing study_basic_9Windows reversing study_basic_9
Windows reversing study_basic_9Jinkyoung Kim
 
Linux reversing study_basic_1
Linux reversing study_basic_1Linux reversing study_basic_1
Linux reversing study_basic_1Jinkyoung Kim
 
Windows reversing study_basic_1
Windows reversing study_basic_1Windows reversing study_basic_1
Windows reversing study_basic_1Jinkyoung Kim
 
Windows reversing study_basic_4
Windows reversing study_basic_4Windows reversing study_basic_4
Windows reversing study_basic_4Jinkyoung Kim
 
Linux reversing study_basic_4
Linux reversing study_basic_4Linux reversing study_basic_4
Linux reversing study_basic_4Jinkyoung Kim
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8Jinkyoung Kim
 
Pwnable study basic_3
Pwnable study basic_3Pwnable study basic_3
Pwnable study basic_3Jinkyoung Kim
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
 
Pwnable study basic_1
Pwnable study basic_1Pwnable study basic_1
Pwnable study basic_1Jinkyoung Kim
 
Linux reversing study_basic_2
Linux reversing study_basic_2Linux reversing study_basic_2
Linux reversing study_basic_2Jinkyoung Kim
 
Windows reversing study_basic_5
Windows reversing study_basic_5Windows reversing study_basic_5
Windows reversing study_basic_5Jinkyoung Kim
 
Windows reversing study_basic_3
Windows reversing study_basic_3Windows reversing study_basic_3
Windows reversing study_basic_3Jinkyoung Kim
 

Mais procurados (20)

Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
System+os study 6
System+os study 6System+os study 6
System+os study 6
 
Assembly 스터디 2
Assembly 스터디 2Assembly 스터디 2
Assembly 스터디 2
 
Windows reversing study_basic_9
Windows reversing study_basic_9Windows reversing study_basic_9
Windows reversing study_basic_9
 
Linux reversing study_basic_1
Linux reversing study_basic_1Linux reversing study_basic_1
Linux reversing study_basic_1
 
Windows reversing study_basic_1
Windows reversing study_basic_1Windows reversing study_basic_1
Windows reversing study_basic_1
 
System+os study 5
System+os study 5System+os study 5
System+os study 5
 
Windows reversing study_basic_4
Windows reversing study_basic_4Windows reversing study_basic_4
Windows reversing study_basic_4
 
Linux reversing study_basic_4
Linux reversing study_basic_4Linux reversing study_basic_4
Linux reversing study_basic_4
 
System+os study 1
System+os study 1System+os study 1
System+os study 1
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8
 
System+os study 3
System+os study 3System+os study 3
System+os study 3
 
Pwnable study basic_3
Pwnable study basic_3Pwnable study basic_3
Pwnable study basic_3
 
Python
PythonPython
Python
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
Pwnable study basic_1
Pwnable study basic_1Pwnable study basic_1
Pwnable study basic_1
 
Linux reversing study_basic_2
Linux reversing study_basic_2Linux reversing study_basic_2
Linux reversing study_basic_2
 
Windows reversing study_basic_5
Windows reversing study_basic_5Windows reversing study_basic_5
Windows reversing study_basic_5
 
Windows reversing study_basic_3
Windows reversing study_basic_3Windows reversing study_basic_3
Windows reversing study_basic_3
 

Semelhante a Avro 조사

Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어Bizmerce Corp
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초Circulus
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개Hyogi Jung
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Park Jonggun
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)one_two_12
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Windosw via c 스터디2장
Windosw via c 스터디2장Windosw via c 스터디2장
Windosw via c 스터디2장HolyTak
 
Java Class File Format
Java Class File FormatJava Class File Format
Java Class File FormatJongyoung Park
 

Semelhante a Avro 조사 (13)

문자열 이상재
문자열 이상재문자열 이상재
문자열 이상재
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Windosw via c 스터디2장
Windosw via c 스터디2장Windosw via c 스터디2장
Windosw via c 스터디2장
 
Java Class File Format
Java Class File FormatJava Class File Format
Java Class File Format
 

Avro 조사

  • 2. 목차 1. 소개 2. 장점 3. 지원 언어 4. Serialization 5. Example 6. 속도 7. 참고
  • 3. 소개 RPC format이다. File format이다. Serialization Framework이다. - 기존 Frameworks는 크게 protocol buffer, thrift가 있다. Doug Cutting이 만들었다.
  • 4. 장점 thrift나 protocol buffer로 쓰고 읽을 수 있다. 다양한 Language를 지원한다. generic type에 의해서 dynamic language와 쉽게 통합이 잘 된다.
  • 6. Avro Serialization Schema Language 가 JSON이다 (모든 언어는 JSON Parser가 존재하기때문) 주어진 언어로 데이터 읽고 쓰기가 구현이 가능하다.
  • 7. Avro Serialization - Primitive Types Type null boolean int long float double bytes string Desc no value a binary value long 64-bit signed integer single precision (32-bit) IEEE 754 floating point number double precision (64-bit) IEEE 754 floating-point number sequence of 8-bit unsigned bytes unicode character sequence { “type” : “string” } 의 꼴로 표현된다.
  • 8. Avro Serialization - Complex Types Type Desc Recodes Use the type name “recode” Enums Use the type name “enum” Arrays Use the type name “array” Maps Use the type name “map” Unions Unions are represented using JSON arrays. Unisons my not contain more than one schema with the same type Fixed Use the type name “fixed” 진짜로 Complex하다. 맨뒤 레퍼런스 참고.
  • 9. Example - Avro 독립 예제
  • 10. Example - Avro + Flume Example.conf 파일 avro로 localhost에 포트 33333에서 받을 거에요
  • 11. Example - Avro + Flume Example.conf 파일 avro로 localhost에 포트 33333에서 받을 거에요 log4j로 기록할 것이고요
  • 12. Example - Avro + Flume agent 실행 -> 대기 client 실행 잘 받아서 저장했다.
  • 13. Example - Avro + Flume2 Client Source Channel Agent Avro Sink Source Channel Sink Agent File Rolling
  • 14. Example - Avro + Flume2
  • 15. 속도 - Total 썩 빠른 편은 아니다.
  • 17. 참고 Apache Avro : http://avro.apache.org Slideshare : http://www.slideshare.net/ChicagoHUG/avro-chug-20120416 http://www.slideshare.net/hadoopusergroup/3-avrohug20100721 Types : http://avro.apache.org/docs/current/spec.html#schema_primitive Avro-RPC-Quickstart : https://github.com/phunt/avro-rpc-quickstart benchmarking : https://code.google.com/p/thrift-protobuf-compare/wiki/ BenchmarkingV2