基于hadoop的数据仓库技术.

Slides:



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

電子商務:數位時代商機‧梁定澎總編輯‧前程文化 出版
电子工业出版社《云计算(第二版)》配套课件
系統分析與設計 第九章 資料設計.
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Big Data Ecosystem – Hadoop Distribution
大數據的學習路線 目前做不到的:機率性太高的(博奕) 大數據的核心:預測 預測來自於:分析及樣本 樣本的產生及收集 樣本的儲存 樣本的處理
第八讲 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本)
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
“大云”大数据平台及应用 中国移动通信研究院 郭磊涛 2013年11月.
教育雲端科技的現況與未來發展 臺北市政府教育局聘任督學 韓長澤.
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
E-Mapreduce培训系列 基本介绍.
基于Hadoop的Map/Reduce框架研究报告
云计算学习报告 报告人: 陈 霁 大规模数据处理软件Apache Hadoop.
云计算平台Hadoop的部署.
南京大学计算机科学与技术系 主讲人:黄宜华 2011年春季学期
巨量資料平台: Hadoop的生態系.
11.3 国产大数据库技术 阿里巴巴OceanBase 云创存储数据立方(DataCube)
台灣雲端運算應用實驗中心研發計畫 計 畫 期 間:自98年7月1日至99年6月30日止 執行單位名稱 :財團法人資訊工業策進會 國立中山大學.
第11章 海量信息存储 主讲:刘方明 副教授 华中科技大学计算机学院
云梯的多namenode和跨机房之路
HADOOP的高能物理分析平台 孙功星 高能物理研究所/计算中心
数据采集与Hadoop框架 报告人:黄文君 导 师:王华忠 BEA Confidential.
为教师开展大数据课程教学提供全方位、一站式服务
大数据在医疗行业的应用.
一种基于Hadoop的视频大数据分布式解码方法 冯强
Made by Feng Nie 开源机器学习库&Hadoop介绍 Made by Feng Nie
Introduction to MapReduce
Frontiers of Software Engineering
软件工程基础 Hadoop生态系统 刘 驰.
YARN & MapReduce 2.0 Boyu Diao
厦门大学数据库实验室NoSQL系列学习之
分布式系统中的关键概念及Hadoop的起源、架构、搭建
第2章 大数据处理架构Hadoop (PPT版本号:2017年2月版本)
云计算之分布式计算.
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
Goolge的云计算 分布式数据表BigTable.
基于Hadoop的数据仓库Hive.
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
kCloudStorage - 基于云技术的廉价冗余天文海量数据存储
第九讲 Hadoop架构再探讨 (2016春季学期)
CHAPTER 6 認識MapReduce.
Spark在智慧图书馆建设中的应用探索 2017年12月22日.
开源云计算系统简介 电子工业出版社 刘鹏主编《云计算》教材配套课件11.
Cloud Computing(雲端運算) 技術的現況與應用
斯巴達帶大家上雲端.
巨量資料分析與應用 (1) 楊立偉教授 台大工管系暨商研所 2014 Fall.
从TDW-Hive到TDW-SparkSQL
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
Hadoop.
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
Cloud Computing Google云计算原理.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
大数据介绍及应用案例分享 2016年7月 华信咨询设计研究院有限公司.
斯坦福大学调研 蒋达晟.
基于大数据平台数据管理研究 何家乐 2013年7月 中国科学院高能物理研究所.
Hadoop入门
TinyOS 石万兵 2019/4/6 mice.
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
虚 拟 仪 器 virtual instrument
Common Qs Regarding Earnings
Apache Flink 刘 驰.
從 ER 到 Logical Schema ──兼談Schema Integration
密级: 亿赞普Hadoop应用浅析 IZP 肖燕京.
主講人:陳鴻文 副教授 銘傳大學資訊傳播工程系所 日期:3/13/2010
基于MapReduce的Join算法优化
Cloud Computing Google云计算原理.
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
Experimental Analysis of Distributed Graph Systems
Presentation transcript:

基于hadoop的数据仓库技术

目录 Hadoop简介 Hive HDFS (Hadoop Distributed File System) MapReduce 1、Hive—A Petabyte Scale Data Warehouse Using Hadoop 2、MapReduce and Parallel DBMSs:Friends or Foes 3、Cheetah:A High Performance,Custom Data Warehouse on Top of MapReduce

历史 2002-2004: Apache Nutch 2004-2006: Google 发表 GFS 和 MapReduce相关论文 Apache 在Nutch中实现HDFS和MapReduce 2006-2008: Hadoop 项目从Nutch中分离 2008年7月,Hadoop赢得Terabyte Sort Benchmark Hadoop Wins Terabyte Sort Benchmark:  One of Yahoo's Hadoop clusters sorted 1 terabyte of data in 209 seconds, which beat the previous record of 297 seconds in the annual general purpose (Daytona) terabyte sort benchmark. This is the first time that either a Java or an open source program has won.

Doug Cutting Hadoop项目负责人 同时也是Nutch, Lucene的负责人 09年8月离开yahoo!,加入Cloudera Doug Cutting Hadoop项目负责人

Hadoop简介 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。 There are 36 data centers in all—19 in the U.S., 12 in Europe, 3 in Asia, and one each in Russia and South America.  Baidu - the leading Chinese language search engine Hadoop used to analyze the log of search and do some mining work on web page database We handle about 3000TB per week Our clusters vary from 10 to 500 nodes Hypertable is also supported by Baidu

Hadoop简介 Hadoop是 Apache 的一个开源软件项目,由Doug Cutting在2004年开始开发。 Hadoop是一个海量数据存储和计算的分布式系统,它由若干个成员组成,主要包括:HDFS、MapReduce、HBase、Hive、Pig 和 ZooKeeper, 其中HDFS是Google的GFS开源版本, HBase 是Google的 BigTable开源版本,ZooKeeper是Google的Chubby开源版本。 Hadoop在大量的公司中被使用和研究 There are 36 data centers in all—19 in the U.S., 12 in Europe, 3 in Asia, and one each in Russia and South America.  Baidu - the leading Chinese language search engine Hadoop used to analyze the log of search and do some mining work on web page database We handle about 3000TB per week Our clusters vary from 10 to 500 nodes Hypertable is also supported by Baidu

Hadoop的体系架构 Hadoop由以下几个部件组成: Hadoop Common: The common utilities that support the other Hadoop subprojects. Avro: A data serialization system that provides dynamic integration with scripting languages. Chukwa: A data collection system for managing large distributed systems. HBase: A scalable, distributed database that supports structured data storage for large tables. HDFS: A distributed file system that provides high throughput access to application data. Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying. MapReduce: A software framework for distributed processing of large data sets on compute clusters. Pig: A high-level data-flow language and execution framework for parallel computation. ZooKeeper: A high-performance coordination service for distributed applications. There are 36 data centers in all—19 in the U.S., 12 in Europe, 3 in Asia, and one each in Russia and South America.  Baidu - the leading Chinese language search engine Hadoop used to analyze the log of search and do some mining work on web page database We handle about 3000TB per week Our clusters vary from 10 to 500 nodes Hypertable is also supported by Baidu

Hadoop的体系架构 There are 36 data centers in all—19 in the U.S., 12 in Europe, 3 in Asia, and one each in Russia and South America.  Baidu - the leading Chinese language search engine Hadoop used to analyze the log of search and do some mining work on web page database We handle about 3000TB per week Our clusters vary from 10 to 500 nodes Hypertable is also supported by Baidu

Hadoop--HDFS HDFS的结构按照GFS设计 A GFS cluster consists of a single master and multiple chunkservers and is accessed by multiple clients There are 36 data centers in all—19 in the U.S., 12 in Europe, 3 in Asia, and one each in Russia and South America.  Baidu - the leading Chinese language search engine Hadoop used to analyze the log of search and do some mining work on web page database We handle about 3000TB per week Our clusters vary from 10 to 500 nodes Hypertable is also supported by Baidu

HDFS Fault-tolerant, 容错性 Run on commodity hardware,在通用的机器上运行 Scalable 可扩缩的 1个 namenode 多个 datanodes 容错性的保证是用校验码或者用冗余,HDFS是用冗余 Commodity hardware 普通pc,不是大型的服务器 可扩展,最重要的特性:访问量的增加,传统的架构的做法…可扩咱架构的做 法… http://hadoop.apache.org/hdfs/docs/current/hdfs_design.html http://labs.google.com/papers/gfs.html

HDFS NameNode DataNode 存贮HDFS的元数据(metadata) 管理文件系统的命名空间(namespace) 创建、删除、移动、重命名文件和文件夹 接收从DataNode来的Heartbeat 和 Blockreport DataNode 存贮数据块 执行从Namenode来的文件操作命令 定时向NameNode发送Heartbeat和Blockreport 重点介绍的概念: Metadata Metadata和data之间的同步 11 11

Heartbeat和Blockreport Datanode 1 Namenode Metadata: <1,(1,2)> <2,(2,3) > <3,(1,3)> 1 1,3 3 1,2 Datanode 2 1 2 2,3 1、保证metadata和data的一致 2、namenode用这样的机制来探测datanode是dead的还是alive,并在发现 datanode死机的时候重新生成副本 Datanode 3 2 3

Data Flow File Read 先读NameNode,获得数据块的信息,再去读相应的DataNode中的数据。 避免所有数据都从NameNode获取,使得NameNode成为性能瓶颈 13 13 13

Data Flow File Write 14 14 14

MapReduce的原理 编程模型(program model),软件包 Map Reduce 把要处理的数据组合成一个个的<key, value>对(pair) Reduce 把具有相同key的pair聚集在一起,计算一个 新的value,从而得到一个新的<key, value> 并输出。 编程模型:计算方法,计算模式,一种思考问题的方法,一种处理问题的方法 ,把这些处理问题的方法实现在一个软件包里。 用这个软件包的时候就用了这种处理问题的方法。

MapReduce的原理 编程模型:计算方法,计算模式,一种思考问题的方法,一种处理问题的方法 ,把这些处理问题的方法实现在一个软件包里。 用这个软件包的时候就用了这种处理问题的方法。

Mapreduce 控制 一个Jobtracker 多个tasktrackers 数据流

MapReduce Jobtraker (Master) Tasktracker (Worker) 接收任务(job)的提交 提供任务的监控(monitoring)和控制(control) 把job划分成多个tasks,交给Tasktracker执行,并管 理这些tasks的执行 Tasktracker (Worker) 管理单个task的map任务和reduce任务的执行

Word count: file0 file1 file2 files <word, count> hello world file1: hello mapreduce file2: bye bye file0 <“hello”, 1> <“world”, 1> <0, “hello world”> Input files file1 <“hello”, 1> <“mpareduce”, 1> <0, “hello mapreduce”> <“hello”, 2> <“world”, 1> <“mapreduce”, 1> <“bye”, 2> file2 <“bye”, 2> <0, “bye bye”> files <line offset, line content> <word, count> <word, count> files

目录 Hadoop简介 Hive Hadoop的企业级应用 HDFS (Hadoop Distributed File System) MapReduce Hive Hadoop的企业级应用

What is HIVE 数据仓库业务具有多样性、多变性和逻辑复杂性,传统的 Parallel DBMSs只能使用SQL语句,语言表达力不够应 付现有的类似google,facebook等的数据仓库需求(若 使用UDF或UDA自己定义aggregate,则失去了其强大 的优化功能),而自己定制的maper和reducer的代码较 为低层比较繁琐且重用性也不好,所以就有了Hive,提供 一个类SQL的编程接口,简单又不失灵活性,且基于 map-reduce.

What is HIVE (论文翻译)hive是一个基于hadoop的数据仓库。使用 hadoop-hdfs作为数据存储层;提供类似SQL的语言 (HQL),通过hadoop-mapreduce完成数据计算;通 过HQL语言提供使用者部分传统RDBMS一样的表格查询 特性和分布式存储计算特性。 (百科)hive是基于Hadoop的一个数据仓库工具,可以 将结构化的数据文件映射为一张数据库表,并提供完整的 sql查询功能,可以将sql语句转换为MapReduce任务进 行运行。 其优点是学习成本低,可以通过类SQL语句快 速实现简单的MapReduce统计,不必开发专门的 MapReduce应用,十分适合数据仓库的统计分析。

HIVE架构 1、 操作界面:CLI,Web,Thrift 2、 driver:hive系统将用户操作转化为mapreduce计算的模块(重点) 3、 hadoop:hdfs+mapreduce 4、 metastore:存储元数据

HIVE结合HBase

reduce阶段写入HBase的方式

map-only job写入HBase的方式

HIVE的实现 hive的元数据存储在传统的RDBMS中,现在为 mysql中。采用JDO (JPOX)。 原因:访问这些Metadata,我们想要“很低的延 时”,而存在hdfs中是无法满足。(元数据对 hive是相当重要的,因此一般要求有备份机制 ) 使用:元数据都是在HQL语句编译的时候 ,就被 生成一个xml文件(包含此次编译所有需要的元 数据信息)存储在hdfs中,然后运行 mapreduce时传递给mapper和reducer。(减 少后期访问)

HIVE查询的优化过程 GraphWalker遍历(walk) DAG中所有的Node,并检 查一个Rule是否满足,在满 足的条件下回出发一个对应 的Processor。Dispatcher 则维护Rule到Processor的 映射,并进行Rule的匹配工 作。

HIVE查询的简单优化步骤 1、 列裁剪(Column pruning):只有需要用到的列 才进行输出 2、 谓词下推(Predicate pushdown ):尽早进行数据过滤 ,减 少后续处理的数据量 3、 分区裁剪(Partition pruning):只读取满足分区条件的文件 4、 map-join:对于join中一些小文件,可以在map阶段进行join 操作 5、 join-reordering:将在reducer中进行join操作时的小table放 入内存 ,而大table通过stream方式读取 6、 Group-by优化: 进行局部聚合进行优化(包括hash-based和 sort-based),对于skew的key(key的row num和size在reduce 时非常不均)可以进行两次map-reduce的方式优化 说明:基本上用于优化的提示(hint)都是一些配置项,map-join除外,需要具体在HQL直接指定。

HIVE的physical plan的生成 根据上一步优化的结果,分解成一些 map/reduce操作,并将最终结果(即一些plan 的xml文件)写入到hdfs。 以论文的例子加以说明 A. Thusoo, J.S. Sarma, N. Jain, Z. Shao, P. Chakka, N. Zhang, S. Antony, and H. Liu, “Hive – A Petabyte Scale Data Warehouse Using Hadoop,” Architecture. FROM (SELECT a.status, b.school, b.gender FROM status_updates a JOIN profiles b ON (a.userid = b.userid AND a.ds='2009-03-20' )) subq1 INSERT OVERWRITE TABLE gender_summary PARTITION(ds='2009-03-20') SELECT subq1.gender, COUNT(1) GROUP BY subq1.gender INSERT OVERWRITE TABLE school_summary PARTITION(ds='2009-03-20') SELECT subq1.school, COUNT(1) GROUP BY subq1.school

HIVE的physical plan的生成

The End Thank you k