Hourglass-A library for incremental processing on Hadoop

Slides:



Advertisements
Similar presentations
Product Lifecycle Management © 2003 IBM Corporation PLM Definition Product Lifecycle Management.
Advertisements

“ PPT WORLD PowerPoint template, you can become an expert. Your wishes for the successful presentation. Our company wishes to own a successful presentation.
지식정보사회의 도래와 전개 -응용: 연구주제 선정 연습 지식정보사회의 도래와 전개 -응용: 연구주제 선정 연습 한성대 김양우.
김예슬 김원석 김세환. Info Northcutt Bikes Northcutt Bikes The Forecasting problem The Forecasting problem The solution 1~6 The.
Mechanical clocks were invented in the northern hemisphere by inventors who were trying to make models of the sun's movement in the sky. To watch the.
도 입 Introduction 여러분 중에 부모인 분 손들어보세요. How many of you are parents? 여러분의 아이가 태어난 날부터 아이의 성장을 위해 어떤 방법으로 아이를 키우시겠습니까 ? What specific ways are you concerned.
평코칭 리더용 제2과: 자산평가와 자기발견 GO Thrive Coaching S Belmont Dr
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Chapter 7 ARP and RARP.
OSGi 번들 서비스 의존성 해결을 위한 Residential Gateway 소프트웨어 구조 설계
6.9 Redundant Structures and the Unit Load Method
Unit 4. Making Inferences
Chapter 3 데이터와 신호 (Data and Signals).
코칭의 강의순서 1. 코칭의 정의 2.코칭의 성서관 3.코칭의 진단 4.코칭의 과정/처방 5.코칭의 기술 6.코칭의 목표/
기본 컴퓨터 프로그래밍 Lecture #6.
English Communication 2
REINFORCEMENT LEARNING
7장 : 캐시와 메모리.
Internet Computing KUT Youn-Hee Han
한 번의 클릭으로 티칭할 수 있는 정전용량형 센서– BCT 시리즈
Korea University of Technology and Education Hongyeon Kim
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
EPS Based Motion Recognition algorithm Comparison
On the computation of multidimensional Aggregates
English Communication 1
Ch. 5 : Analog Transmission
이산수학(Discrete Mathematics) 수학적 귀납법 (Mathematical Induction)
Genetic Algorithm 신희성.
Dynamic Programming.
Ch. 10 Algorithm Efficiency & Sorting
Ch. 10 Algorithm Efficiency & Sorting
Internet Computing KUT Youn-Hee Han
Chapter 2. Finite Automata Exercises
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
for Robust Facial Landmark Localization
계수와 응용 (Counting and Its Applications)
KMS 구현 및 활용사례 경쟁력 강화를 위한 2002년 5월 28일(화) 김 연 홍 상무 / 기술사
Team no.13 Tech TonicS.
제6장 교착상태 OS 컴퓨터 운영체제 Operating Systems
성문영어구문 pattern 관계대명사의 생 략.
Congestion Control for Vehicular Safety:
제4장 : 노동력 구조 1. 한국의 노동력 구조 2. 일본의 노동력구조 3. 유럽의 노동력 구조 4. 노동력 구조의 변화와 정책방향 동영상 학습과제 1. 노동력 구조와 의미는? 2. 각국의 노동력 구조를 조사하는 방법은? 3. 각국의 노동력 구조의 변화추이는? 4.
DataScience Lab. 박사과정 김희찬 (목)
Dynamic Programming.
문제 다음의 서술적 언어로 표현된 요구사항을 DFD로 완성하시오
소프트웨어 종합설계 (Software Capstone Design)
: 부정(negative)의 의미를 나타내는 접두사
McGraw-Hill Technology Education
CEO가 가져야 할 품질 혁신 마인드.
제 세 동.
이산수학(Discrete Mathematics)
평생 간직할 멋진 말 Excellent thought applicable through our whole life
CS712 병렬 처리 특강 차세대 무선 네트워크 및 보안의 최신동향
점화와 응용 (Recurrence and Its Applications)
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
자동제어공학 4. 과도 응답 정 우 용.
• I was touched by my friends’ effort.
17. Spawning Information Agents on the Web
소프트웨어 종합설계 (Software Capstone Design)
The general form of 0-1 programming problem based on DNA computing
Bug Localization Based on Code Change Histories and Bug Reports
Presentation by Timothy Kane
Hongik Univ. Software Engineering Laboratory Jin Hyub Lee
[CPA340] Algorithms and Practice Youn-Hee Han
Chapter 2. Coulomb’s Law & Electric Field Intensity
Chapter 4. Energy and Potential
Chapter 7: Deadlocks.
Presentation transcript:

Hourglass-A library for incremental processing on Hadoop IEEE International Conference on Big Data, 2013 2015.12.03 정보통신공학 전현욱

INDEX Introduction Related Work Incremental Model Evaluation Conclusion

1. Introduction (1/2) Hadoop enables processing of large data sets through its relatively easy-to-use semantics. At LinkedIn Hadoop is used for people, job, and other entity recommendations, ad targeting, news feed updates, analytical dashboards, and ETL, among others. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

1. Introduction (2/2) However, jobs are often written inefficiently for tasks that could be computed incrementally due to the burdensome incremental state management for the programmer. This paper introduces Hourglass, a library for developing incremental monoid computations on Hadoop. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

2. Related Work There are two broad classes of approaches to incremental computation over large data sets. The first class of systems provides abstractions the programmer can use to store and use state across successive runs so that only the necessary sub-computations need be performed. The second class of approaches are systems that attempt to reuse the results of prior computations transparently. Our approach borrows techniques from systems in the first class to accommodate incremental processing atop Hadoop. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (1/7) Problem Definition Computing the last login time in this way is an example of what we will call an append-only sliding window problem. In this case, the start of the window is fixed and the end grows as new data becomes available. As a result, the window length is always increasing ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (2/7) Problem Definition Computing the impression counts in this way is an example of what we will call a fixed-length sliding window problem. For this type of problem the length of the window is fixed. The start and end of the window both advance as new data becomes available ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (3/7) Our Approach (Append-only Sliding Window) First we introduce the concept of a partition-collapsing job, which reads partitioned data as input and merges the data together, producing a single piece of output data. Suppose that the reduce step can be represented particular key: a⊕b⊕c⊕d (a⊕b)⊕(c⊕d) When new data e arrives, we can compute (a⊕b)⊕(c⊕d)⊕e without having to recompute (a⊕b) and (c⊕d) ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (4/7) Our Approach (Append-only Sliding Window) We refer to this as a partition-preserving job. This achieves the same result as running a separate MapReduce job on each day of input without the scheduling overhead. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (5/7) Our Approach (Append-only Sliding Window) Partition-preserving jobs provide one way to address the inefficiency of the append-only sliding window problem presented in Figure 1. Assuming the last login times are first computed for each day as in Figure 4, the results can serve as a substitute for the original login data. One interesting property of the last-login problem is that the previous output can be reused. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (6/7) Our Approach (Append-only Sliding Window) This suggests that the problem can be solved with a single partition-collapsing job that reuses output This has two advantages over the previous two-pass version. First, the output data is usually smaller than both the input data and the intermediate data Second, it avoids scheduling overhead and increased wall clock time from having two sequentially executed MapReduce jobs ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

3. Incremental Model (7/7) Our Approach (Fixed-length Sliding Window) Similar to the append-only sliding window case, this problem can be solved using a sequence of two jobs, the first partition-preserving and the second partition-collapsing. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

4. Evaluation (1/2) Four benchmarks were used to evaluate the performance of Hourglass. All used fixed-length sliding windows. Use Hadoop 1.0.4 ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

4. Evaluation (1/4) Weibo Impressions Benchmark The Weibo recommendation training data consists of a set of item recommendations. These were partitioned by day according to their timestamp, producing data spanning a month in time. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

4. Evaluation (2/4) PYMK Impressions Benchmark “People You May Know” (PYMK) is a recommendation system at LinkedIn that suggests connections to members. This data is recorded as a sequence of (src,destIds) pairs, partitioned by day. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

4. Evaluation (3/4) Page Views Benchmark At LinkedIn, page views are recorded in an event stream, where for each event, the member ID and page that was viewed is recorded. For this benchmark we computed several metrics from this event stream over a 30 day sliding window. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

4. Evaluation (4/4) Cardinality Estimation Benchmark The page views data from the previous example can also be used to determine the total number of LinkedIn members who accessed the website over a span of time. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

5. Conclusion In this paper we presented Hourglass, a framework for efficiently processing data incrementally on Hadoop by providing an easy accumulator-based interface for the programmer. Using real-world use cases and data from LinkedIn, we show that a 50–98% reduction in total task time and a 25–50% reduction in wall clock time are possible compared to baseline non-incremental implementations. ① 클라이언트로부터 작업요청을 받은 JobTracker는 TaskTracker별로 처리할 작업 목록을 구성한다. ② TaskTracker 는 주기적으로 heartbeat를 전송하고, JobTracker는 이 메시지의 반환 값에 처리할 작업 ID를 반환한다. ③ 작업 ID를 받은 TaskTracker 는 관련된 작업의 정보를 하둡 파일 시스템에서 가져오고, 수행할 프로그램도 하둡 파일 시스템으로부터 로컬에 저장한다. ④ TaskTracker 에서는 fork 명령을 이용해 Map 과 Reduce 를 실행하고 JobTracker에게 메세지를 전달하면서 파일에 대한 변경사항은 DataNode와 통신한다. DataNode는 다시 NameNode에게 파일 블럭에 대한 정보를 전달한다.

감사합니다