- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 云计算的开源实现Hadoop * 5.1 Hadoop概述 以MapReduce框架和Hadoop分布式文件系统(HDFS)为核心。 同时包含Hive、HBase、Pig、Common、Avro、Chukwa等多个子项目的大数据处理平台。 目前基本上已成为MapReduce实现的产业标准。 在互联网领域得到了广泛的应用: Yahoo! 百度:搜索日志的分析和网页数据的挖掘工作 淘宝:存储并处理电子商务交易的相关数据 * 5.2 Hadoop在云计算和大数据的位置和关系 Hadoop是构建云计算环境的一种分布式框架 HDFS采用了分布式存储方式,提高了读写速度。 MapReduce 用以整合分布式文件系统上的数据。 采用存储冗余数据的方式保证了数据的安全性。 工业界大数据领域的事实标准 业界的使用和改进迭代进一步完善并推动了Hadoop的发展。 * 5.3 Hadoop生态系统 底层以HDFS和MapReduce为核心,上层为各种存储、计算、分析等应用系统,包括Common、Avro、Chukwa、Hive、HBase、Pig等。 * Hadoop生态系统 HDFS:Hadoop分布式文件系统,用以实现分布式存储,是GFS的Java开源实现,运行在大型商业机集群。 MapReduce:分布式数据处理模型和执行环境,运行在大型商业机集群,能够处理T级别及以上的数据。 Hbase:分布式、按列存储的数据库。HBase使用HDFS作为底层存储,同时支持MapReuce的批量式计算和随机读取。 Hive:是为提供简单的数据操作而设计的分布式数据仓库。Hive管理HDFS中存储的数据,提供了一种类似SQL语法的HiveQL语言进行数据查询(由运行时引擎翻译成MapReduce作业)。 Pig:大数据流处理系统,运行在HDFS和MapReduce的集群上,用来执行并行计算,检索大型数据集。 * Hadoop生态系统 Mahout:基于MapReduce的大规模数据挖掘与机器学习算法库。 Zookeeper:分布式协调系统,是Google Chubby的Java开源实现,是一种可靠的分布式协同(coordination)系统,可以用来构建分布式应用。 Flume:一个分布式、可用性高的海量日志收集和传输系统。 Sqoop:数据转换系统,Hadoop环境下连接关系数据库和Hadoop存储系统的桥梁:可以将一个关系型数据库中的数据导入非关系型数据库中,也可以将非关系型的数据导入关系型数据库中。 Ambari:Hadoop分布式集群配置管理工具,支持Hadoop集群的供应、管理和监控。Ambari充分利用一些已有的优秀开源软件,在分布式环境中实现集群式服务管理、监控和展示。 * 分布式文件系统HDFS 主从架构模型系统,一个HDFS集群由一个Master节点和多个Slave节点构成。 Master节点:称为NameNode,用以管理整个文件系统命名空间和客户端对文件的访问 Slave节点:称为DataNode,用于真正存储数据。 HDFS的副本存放策略 将3个数据块副本(默认配置下)中的两个存放在同一个机架的不同节点上,另一个存放在另外一个机架的一个节点上。 在读取数据时,HDFS会尽量读取离客户端最近的副本。 * 分布式数据处理MapReduce 一种并行计算模型,用于大规模数据集的并行运算。 Map函数把一个输入的键值对key,value映射成同样为key,value形式的中间结果 把具有相同key值的value归纳起来形成一个value列表(这个过程称为Shuffle)并传递给reduce函数 reduce函数对这个value列表进行处理,输出形式为key,value的最终结果。 * 分布式数据库HBase 构建在HDFS之上的面向列的分布式数据库系统。 利用HDFS作为其文件存储系统 采用MapReduce框架处理海量数据 通过ZooKeeper进行集群管理。 HBase有别于关系数据库。 基于列的映射数据库,表示简单的键-数据的映射关系 只有简单的字符串类型 只提供插入、删除、查询、清空等简单操作,没有复杂的表和表之间的关联 基于列存储,每一列单独存放,数据就是索引 数据更新是通过时间戳增加了新的数据版本,历史数据仍然会保留 可伸缩性,通过简单的增加节点进行水平扩展 * 数据仓库Hive 一个基于Hadoop文件系统的开源数据仓库架构。 定义了类SQL的语言(HQL),通过HQL实现和SQL相似的操作。 对存储在HDFS中的大规模数据进行查询和分析。 Hive有别于关系数据库。 Hive的数据存储在HDFS中 Hive没有定义专门的数据格式,只需在定义表的时候指明数据中的列分隔符和行分隔符即可 Hi
原创力文档


文档评论(0)