hadoop大数据处理讲义-c3. Hadoop体系架构


海量数据处理中的云计算 北京邮电大学信息与通信工程学院 刘军 liujun@bupt.edu.cn 2014年春季学期 C3. Hadoop体系架构 上节问题  问题: – 对Google的三大核心技术任意一个的最重要技术特点进行研究  要求: – 详细讲解该特点,并说明为什么是最重要的 第2页 本节目录  Hadoop发展历程  基于Hadoop的海量数据处理架构  Hadoop技术组件介绍  Hadoop实战 第3页 Hadoop的由来  当老二干不过老大时,怎么办?  免费+开源 vs. vs. Hadoop的由来  Doug Cutting + Google论文 + Yahoo!支持 第5页 Doug Cutting Nutch, Lucene创始人 Hadoop创始人 2002 挣扎在如何使Nutch满足Web-Scale要求 2003 发表GFS论文 2005 参考MapReduce论文,实现并移植Nutch 2004 参考GFS论文,在Nutch中实现NDFS 加入Yahoo!并扩充,建立Hadoop项目 2006 Hadoop成为Apache顶级项目 2008 发表MapReduce论文 2004 发表BigTable、Chubby论文 2006 Hadoop发展历程 第6页 Hadoop技术族 第7页 Common 整体架构提供基 础支撑性功能, 主要包括了文件 系统、RPC和数 据 串 行 化 库 HDFS 构建于廉价计算 机集群之上的分 布式文件系统, 低成本、高可靠 性 、 高 吞吐量 MapReduce 分布式编程模型 和软件框架,用 于在集群上编写 对海量数据处理 的并行化程序 HBase 分布式的、面向 列的数据库,是 一个适合于非结 构化海量数据存 储 的 数 据 库 Hive 数据仓库工具, 将结构化数据文 件映射为库表, 并提供强大的类 SQL 查询功能 Pig 适合海量数据分 析的脚本语言工 具,包括了一个 数据分析语言和 支持的运行环境 HCatalog 提供共享数据模 版和数据类型的 机制,并对数据 表进行抽象以便 于进行数据整合 Sqoop 在Hadoop与传 统数据库间进行 数据交换的工具, 支持两者之间的 数据导入和导出 Chukwa 分布式数据收集 和分析工具集, 用于显示、监控、 分析大型分布式 系统的运行数据 Ambari 安装、管理和监 控Hadoop集群 的Web界面工具。 目前已支持大部 分 组件的管理 ZooKeeper 维护Hadoop集 群的配置和命名 信息,并提供分 布式锁同步功能 和群组管理功能 基于Hadoop的海量数据处理框架  平台管理层:确保整个数据处理平台平稳安 全运行的保障,包括配置管理、运行监控、 故障管理、性能优化、安全管理等在内的功 能。  数据分析层:提供一些高级的分析工具给数 据分析人员,以提高他们的生产效率。  编程模型层:为大规模数据处理提供一个抽 象的并行计算编程模型,以及为此模型提供 可实施的编程环境和运行环境。  数据存储层:提供分布式、可扩展的大量数 据表的存储和管理能力,强调的是在较低成 本的条件下实现海量数据表的管理能力。  文件存储层:利用分布式文件系统技术,将 底层数量众多且分布在不同位置的通过网络 连接的各种存储设备组织在一起,通过统一 的接口向上层应用提供对象级文件访问服务 能力。  数据集成层:系统需要处理的数据来源,包 括私有的应用数据、存放在数据库中的数据、 被分析系统运行产生的日志数据等,这些数 据具有结构多样、类型多变的特点。 第8页 Hadoop核心 – HDFS与MapReduce 第9页 Hadoop核心 – 基础架构(HDFS+MR) 第10页  NameNode(NN) – 管理者,命名空间, 维护文件树及文件和 目录的元数据 – 命名空间镜像文件、 编辑日志文件、数据 块与DN的对应  Secondary NN – NameNode备份 – 与NN定时通信 – 保存元数据快照 – 故障切换  DataNode(DN) – 与NameNode 定时通信 – 保存元数据快照 – 故障切换  JobClient – 基于接口库编写 的客户端程序 – 提交MR作业  JobTracker – 控制协调者 – 协调作业的执行 – 仅有一个  TaskTracker – 任务控制 – 一个或多个 Map或Reduce 任务 – 维持心跳  MapTask,ReduceTask – 具体执行Map和Reduce任务的程序 Hadoop核心 – 运行机制 ① MapReduce程序启动作业 ② JobClient从JobTracker获得作业ID ③ JobClient将代码和配置存入HDFS ④ JobClient向JobTracker提交此作业 ⑤ JobTracker将作业放入队列中等待调度 ⑥ JobTracker从HDFS中取出代码和配置,并创建 对应数量的Map任务和Reduce任务 第11页 ⑦ JobTracker将Map任务和Reduce任务分配 到空闲的TaskTracker节点 ⑧ TaskTracker从HDFS取出数据存入本地磁盘, 并启动一个TaskRunner准备运行任务 ⑨ TaskRunner在新Java虚拟机中创建出 MapTask或ReduceTask进行运算, MapTask和ReduceTask会定时向 TaskRunner报告进度,直到任务完成 Hadoop数据存储 – HBase 第12页 Hadoop数据存储 – Why HBase?  来源: Fay Chang, Jeffrey Dean, et. al., Bigtable: A Distributed Storage System for Structured Data, Seventh Symposium on Operating System Design and Implementation, 2006.  Why HBase?(http://hbase.apache.org/book/architecture.html#arch.overview) – HDFS is a distributed file system that is well suited for the storage of large files. It's documentation states that it is not, however, a general purpose file system, and does not provide fast individual record lookups in files. – HBase, on the other hand, is built on top of HDFS and provides fast record lookups (and updates) for large tables. – This can sometimes be a point of conceptual confusion. HBase internally puts your data in indexed "StoreFiles" that exist on HDFS for high-speed lookups. 第13页 EXT2 Hadoop数据存储 – 感受HBase 第14页 文 件 表 Hadoop数据分析 – Hive和Pig 第15页 Hadoop数据分析 – Hive 第16页  来源: Ashish Thusoo, Joydeep Sen Sarma, et al., Facebook, “Hive: A Warehousing Solution over A Map-Reduce Framework”, Proceedings of the VLDB Endowment, Aug. 2009.  Why Hive?(http://hive.apache.org/) – Hive is a data warehouse system for Hadoop that facilitates easy data summarization, ad-hoc queries, and the analysis of large datasets stored in Hadoop compatible file systems. Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL. – 数据库 vs. 数据仓库:存取(面向事务) vs. 分析(面向主题) Hadoop数据分析 – 感受Hive 第17页 SELECT * FROM log WHERE date > 2012-12-01 DISTRIBUTE BY date SORT BY date ASC, host ASC; 代 码 SQL Hadoop数据分析 – Pig 第18页  来源: Christopher Olston, Benjamin Reed, Utkarsh Srivastava, et al., Yahoo!, "Pig Latin: A Not-so-foreign Language for Data Processing", ACM SIGMOD, 2008.  Why Pig?(http://pig.apache.org/) – Apache Pig is a platform for analyzing large data sets that consists of a high-level language for expressing data analysis programs, coupled with infrastructure for evaluating these programs. – Pig's language layer currently consists of a textual language called Pig Latin. – Pig vs. Hive:数据准备 vs. 数据呈现 Hadoop数据分析 – 感受Pig及对比Hive 第19页 > good_urls = FILTER urls BY pagerank > 0.2; > groups = GROUP good_urls BY category; > big_groups = FILTER groups BY COUNT(good_urls)>106; > output = FOREACH big_groups GENERATE category, AVG(good_urls.pagerank); Hive Pig SELECT category, AVG(pagerank) FROM urls WHERE pagerank > 0.2 GROUP BY category HAVING COUNT(*) > 106 Hadoop数据集成 第20页 Hadoop数据集成 – HCatalog 第21页  来源: Hortonworks,2010年3月提出,2011年5月发布。  Why HCatalog?(http://incubator.apache.org/hcatalog/ ) – Apache HCatalog is a table and storage management service for data created using Apache Hadoop. . Providing a shared schema and data type mechanism. . Providing a table abstraction so that users need not be concerned with where or how their data is stored. . Providing interoperability across data processing tools such as Pig, Map Reduce, and Hive. Hadoop数据集成 – Sqoop 第22页  来源: Aaron Kimball为Hadoop开发的一个小模块(2009年),并 由Cloudera支持成为Apache开源项目。  Why Sqoop?(http://sqoop.apache.org/ ) – Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases. Hadoop数据集成 – Chukwa 第23页  来源: 由Yahoo! 2008年提供的模块扩展出的Apache项目。  Why Chukwa?(http://sqoop.apache.org/ ) – Chukwa is an open source data collection system for monitoring large distributed systems. Hadoop在产业界 第24页 使用 贡献 Hadoop在学术界 第25页 Hadoop实战 “知行合一” 第26页 单机Hadoop运行与开发环境 第27页 Windows操作系统 VMware Linux Hadoop Hadoop运行与开发环境搭建  目标: – 建立Windows下的单机Hadoop环境 – 建立Eclipse开发环境  步骤: – 安装和配置VMware – 安装和配置Hadoop – 运行示例程序验证Hadoop安装 – 安装和配置Eclipse下的Hadoop开发环境  参考: – 初学者VmWare安装CentOS6.4虚拟机搭建hadoop1.2.1\hbase0.94.12环境 http://maojing1991.iteye.com/blog/1978256 第28页 作业  完成: – 建立Windows下的单机Hadoop环境 – 运行WordCount程序  要求: – 所有同学在下周二下午12点前将安装过程及运行WordCount程序结果截 图,整理成Word文档,发送到:liujun@bupt.edu.cn . 邮件标题:海量数据处理作业1-姓名 . 文档名:海量数据处理作业1_hadoop安装_姓名 – 下节课现场对着文档讲解安装过程和WordCount程序结果 第29页 课程设计主题讨论  问题定义与描述  为什么需要使用Hadoop  计划使用的Hadoop具体技术  方案构想与预期效果 第30页
还剩29页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

pwgw

贡献于2016-02-04

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf