Introduction to MapReduce

Slides:



Advertisements
Similar presentations
大数据基础技术和应用. 大纲 大数据概述 大数据基础技术 工程技术 策略技术 典型应用 我们处于数据爆炸的时代 数据库 文字记录 照片 线下数据信息化 网页数据 用户行为记录 数字图像 互联网 - 移动互联网 设备监控 智能家居 摄像头 传感器 地球上至今总共的数据量: 在 2006 年,个人用户才刚刚迈.
Advertisements

提升教學品質研討會 工學院教師教學經驗分享 長庚大學 資訊工程學系 / 醫療機電工程研究所 助理教授 趙一平 2015/04/10.
第三讲 面向对象(上).
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Introduction 基本概念 授課老師:蕭志明
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
第八讲 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本)
基于Hadoop的Map/Reduce框架研究报告
Ch.8. 基于MapReduce的图算法 MapReduce海量数据并行处理
算法设计与分析 Algorithm Design and Analysis
南京大学计算机科学与技术系 主讲人:黄宜华 2011年春季学期
CHAPTER 9 使用Hadoop實作MapReduce.
TQC+ 物件導向程式認證-JAVA.
数据采集与Hadoop框架 报告人:黄文君 导 师:王华忠 BEA Confidential.
为教师开展大数据课程教学提供全方位、一站式服务
基于hadoop的数据仓库技术.
Hadoop与数据分析 淘宝数据平台及产品部基础研发组 周敏 日期:
Map-Reduce Programming
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
第二章 JAVA语言基础.
類別與物件 Class & Object.
一种基于Hadoop的视频大数据分布式解码方法 冯强
Made by Feng Nie 开源机器学习库&Hadoop介绍 Made by Feng Nie
软件工程基础 Hadoop生态系统 刘 驰.
當企鵝龍遇上小飛象 DRBL-Hadoop Jazz Wang Yao-Tsung Wang
YARN & MapReduce 2.0 Boyu Diao
程式設計實作.
分布式系统中的关键概念及Hadoop的起源、架构、搭建
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
API设计实例分析 通用IO API.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
計算方法設計與分析 Design and Analysis of Algorithms 唐傳義
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
Hadoop MapReduce Hadoop Map-Reduce is a software framework for easily writing applications.
Hadoop I/O By ShiChaojie.
基于Hadoop的数据仓库Hive.
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
《大数据技术原理与应用》 第七章 MapReduce (2016春季学期) 林子雨 厦门大学计算机科学系 主页:
CHAPTER 6 認識MapReduce.
Spark在智慧图书馆建设中的应用探索 2017年12月22日.
厦门大学数据库实验室 MapReduce 连接
An Introduction to Computer Science (計算機概論)
Cloud Computing MapReduce进阶.
Java语言程序设计 第五部分 Java异常处理.
Map Reduce Programming
从TDW-Hive到TDW-SparkSQL
《大数据技术原理与应用》 第十二讲 图计算 (2016春季学期)
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
Homework 1(上交时间:10月14号) 倒排索引.
C/C++/Java 哪些值不是头等程序对象
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
Hadoop入门
Hadoop与数据分析 淘宝数据平台及产品部基础研发组 周敏 日期:
JAVA 编 程 技 术 主编 贾振华 2010年1月.
A Big Data Framework for u-Healthcare Systems Utilizing Vital Signs
软件工程 第四章 软件设计 软件过程设计技术与工具.
第8章 資料排序 資料結構設計與C++程式應用
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
密级: 亿赞普Hadoop应用浅析 IZP 肖燕京.
基于云计算及数据挖掘技术的海量数据处理研究
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
基于MapReduce的Join算法优化
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
Arguments to the main Function and Final Project
辅导课程十二.
JAVA 程式設計與資料結構 第三章 物件的設計.
東吳大學『樂齡大學』 外雙溪環境與生態 產業 黃顯宗 東吳大學 微生物學系 101.
Experimental Analysis of Distributed Graph Systems
Presentation transcript:

Introduction to MapReduce Jazz Wang Yao-Tsung Wang jazz@nchc.org.tw

Divide and Conquer Algorithms 分而治之演算法 Example 2: Example 1: Example 3: Example 4: The way to climb 5 steps stair within 2 steps each time. 眼前有五階樓梯,每次可踏上一階或踏上兩階,那麼爬完五階共有幾種踏法? Ex : (1,1,1,1,1) or (1,2,1,1) 2 2

What is MapReduce ?? 什麼是MapReduce ?? MapReduce是Google申請的軟體專利,主要用來處理大量資料 MapReduce is a patented software framework introduced by Google to support distributed computing on large data sets on clusters of computers. 啟發自函數編程中常用的map與reduce函數。 The framework is inspired by map and reduce functions commonly used in functional programming, although their purpose in the MapReduce framework is not the same as their original forms Map(...) : N → N Ex. [ 1,2,3,4 ] – (*2) -> [ 2,4,6,8 ] Reduce(...): N → 1 [ 1,2,3,4 ] - (sum) -> 10 Logical view of MapReduce Map(k1,v1) -> list(k2,v2) Reduce(k2, list (v2)) -> list(v3) Source: http://en.wikipedia.org/wiki/MapReduce

Google's MapReduce Diagram Google的MapReduce圖解 4 4

Google's MapReduce in Parallel Google的MapReduce平行版圖解 5 5

How does MapReduce work in Hadoop Hadoop MapReduce 運作流程 JobTracker選數個TaskTracker來作Map運算,產生些中間檔案 split 0 split 1 split 2 input HDFS JobTracker跟NameNode取得需要運算的blocks part0 part1 output HDFS reduce完後通知JobTracker與Namenode以產生output sort/copy JobTracker將中間檔案整合排序後,複製到需要的TaskTracker去 merge reduce JobTracker派遣TaskTracker作reduce 6 6

MapReduce by Example (1) MapReduce 運作實例 (1) I am a tiger, you are also a tiger a,2 also,1 am,1 are,1 I,1 tiger,2 you,1 reduce JobTracker再選一個TaskTracker作reduce I am a tiger you are also JobTracker先選了三個Tracker做map map I,1 you,1 tiger,1 a,1 also,1 are,1 am,1 sort & shuffle Map結束後,hadoop進行中間資料的重組與排序 I,1 you (1) tiger(1,1) a (1,1) also (1) are (1) am,1 7

MapReduce by Example (2) MapReduce 運作實例 (2) 1.0 0.0 3.0 3.2 0.8 32.0 1.0 14.0 1.0 a b c d sqrt(a + b) sqrt(c + d) ? (0,sqrt(1.0 + 0.0 + 3.0)) (1,sqrt(3.2 + 0.8 + 32.0)) (2,sqrt(1.0 + 14.0 + 1.0)) Input File 0 0 1.0 // A[0][1] = 1.0 0 1 0.0 // A[0][1] = 0.0 0 2 3.0 // A[0][2] = 3.0 1 0 3.2 // A[1][0] = 3.2 1 1 0.8 // A[1][1] = 0.8 1 2 32.0 // A[1][2] = 32.0 2 0 1.0 // A[2][0] = 1.0 2 1 14.0 // A[2][1] = 14.0 2 2 1.0 // A[2][2] = 1.0 ` (0,1.0) (0,0.0) (0,3.0) (1,3.2) (1,0.8) (1,32.0) (2,1.0) (2,14.0) reduce map sort / merge (0,{1.0,0.0,3.0}) (1,{3.2,0.8,32.0}) (2,{1.0,14.0,1.0}) map 8

MapReduce is suitable to .... MapReduce 合適用於 .... 大規模資料集 Large Data Set 可拆解 Parallelization Text tokenization Indexing and Search Data mining machine learning … http://www.dbms2.com/2008/08/26/known-applications-of-mapreduce/ http://wiki.apache.org/hadoop/PoweredBy 9

MapReduce程式設計入門 Jazz Wang Yao-Tsung Wang jazz@nchc.org.tw MapReduce Programing 101 Jazz Wang Yao-Tsung Wang jazz@nchc.org.tw

Other configure 其他的設定參數程式碼 Program Prototype (v 0.20) Class MR{ static public Class Mapper …{ } static public Class Reducer …{ main(){ Configuration conf = new Configuration(); Job job = new Job(conf, “job name"); job.setJarByClass(thisMainClass.class); job.setMapperClass(Mapper.class); job.setReduceClass(Reducer.class); FileInputFormat.addInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.waitForCompletion(true); }} Mapper 程式碼 Map 區 Reducer 程式碼 Reduce 區 設 定 區 Other configure 其他的設定參數程式碼 11

Other configure 其他的設定參數程式碼 Program Prototype (v 0.18) Class MR{ static public Class Mapper …{ } static public Class Reducer …{ main(){ JobConf conf = new JobConf( MR.class ); conf.setMapperClass(Mapper.class); conf.setReduceClass(Reducer.class); FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); }} Map 區 Map 程式碼 Reduce 區 Reduce 程式碼 設 定 區 Other configure 其他的設定參數程式碼 12

Word Count - mapper itr itr itr itr itr itr itr class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map( LongWritable key, Text value, Context context) throws IOException , InterruptedException { String line = ((Text) value).toString(); StringTokenizer itr = new StringTokenizer(line); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); }}} 1 2 3 4 5 6 7 8 9 Input key <word,one> …………………. ………………… No news is a good news. /user/hadooper/input/a.txt < no , 1 > no news is good a < news , 1 > itr itr itr itr itr itr itr < is , 1 > Input value line < a, 1 > < good , 1 > < news, 1 > 13

Word Count - reducer news 1 1 class MyReducer extends Reducer< Text, IntWritable, Text, IntWritable> { IntWritable result = new IntWritable(); public void reduce( Text key, Iterable <IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for ( IntWritable val : values ) sum += val.get(); result.set(sum); context.write ( key, result); }} 1 2 3 4 5 6 7 8 for ( int i ; i < values.length ; i ++ ){ sum += values[i].get() } <word,one> < a, 1 > news < good, 1 > <key,SunValue> < is, 1 > 1 1 < news , 2 > < news, 11 > < no, 1 > 14

Word Count – main program Class WordCount{ main() Configuration conf = new Configuration(); Job job = new Job(conf, “job name” ); job.setJarByClass(thisMainClass.class); job.setMapperClass(MyMapper.class); job.setReduceClass(MyReducer.class); FileInputFormat.addInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.waitForCompletion(true); }} 15

Slides - http://trac.nchc.org.tw/cloud Questions? Slides - http://trac.nchc.org.tw/cloud Jazz Wang Yao-Tsung Wang jazz@nchc.org.tw