热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据处理架构Hadoop

2.1.1Hadoop简介1.Hadoop是Apache软件基金会旗下一个分布式计算平台基于Java2.Hadoop的核心是分布式文件系统HDFS和MapReduce

2.1.1Hadoop简介

1.Hadoop是Apache软件基金会旗下一个分布式计算平台  基于Java

2.Hadoop的核心是分布式文件系统 HDFS 和 MapReduce

3.HDFS是对谷歌GFS的开源实现 具有较高的读写速度,容错性,可伸缩性

4.HDFS是冗余数据存储方式

5.MapReduce是针对谷歌MapReduce的开源实现 并行开发应用程序

2.1.2Hadoop的发展历史

1.Hadoop最初是由ApacheLucene项目的创始人Doug Cutting开发的文本搜索库

2.Hadoop源自于2002年Apache Nutch项目—一个开源的网络搜索引擎也是Lucene项目的一部分 Nutch模仿谷歌的GFS开发了NDFS 也是HDFS的前身

2.1.3Hadoop的特性

       1.高可靠性

       2.高效性

       3.高可扩展性

       4.高容错性

       5.成本低

       6.运行在Linux

       7.支持多编程语言

2.1.4Hadoop应用现状

       1.2007年雅虎在Sunnyvale总部建立M45—一个包含4000处理器的1.5PB级的Hadoop集群

       2.华为对Hadoop的贡献很大

2.2Hadoop的项目结构

2.2.1-----Common

1.Hadoop Common原名Hadoop Core 从Hadoop0.2更名为Common 在Hadoop2.2以及之前版本 Common 包含HDFS MapReduce和其他公共的项目内容

2.从Hadoop0.2开始HDFS和Mapreduce被分离出来作为单独子项目,其余部分构成Common

3.Common是为了Hadoop其他子项目提供支持的常用的工具 提供基本服务

主要包括:文件系统,RPC和串行化库

2.2.2-----Avro

1.Avro是Hadoop一个子项目,也是Apache中的一个独立项目

2.Avro是一个用于数据序列化的系统,提供丰富的数据结构类型,快速可压缩的二进制数据格式,存储持久性数据的文件集,远程调用RPC的功能和简单的动态语言集成功能

3.和Thrift类似,Avro支持跨编程语言实现

4.Avro有自己显著的特点:他依赖于模式(Schema),数据的读写实在模式下完成的,需要动态的加载相关数据的模式,正是使用了模式,写入数据的开销大大减少,序列化速度大大提升,方便了动态脚本语言的使用,在把Avro数据保存到文件中时,数据连通模式一起被存储,这样,不同类型的程序都可以对文件进行处理,Avro和动态语言结合后,读写数据文件和使用RPC协议都不用生成代码,代码生成可作为一种可选的优化,只需要在静态类型语言中实现

 

2.2.3-----HDFS

1.把硬件故障作为一种常态,

2.HDFS放宽了一部分POSIX约束,实现了以流的方式访问文件系统中的数据

3.HDFS在访问应用程序数据时,可以拥有很高的吞吐率

2.2.4-----Hbase

1.Hbase是一个提供高可靠性,高性能,可伸缩,实时读写,分布式的列式数据库,一般使用HDFS作为底层存储

2.Hbase是针对谷歌的BigTable的开源实现,二者采用相同的数据模型,具有强大的非结构化数据存储的能力

3.Hbase与传统数据库的一个重要区别:hbase基于列存储,其他基于行存储

4.Hbase拥有良好的横向扩展能力,可以通过不断增加廉价服务器来增加存储能力

2.2.5-----MapReduce

1.Hadoop MapReduce是针对谷歌MapReduce的开源实现,是一种编程模式,用于大规模数据集(大于1TB)的并行计算

2.2.6-----Zookeeper

1.Zookeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布锁之类的基本服务,用于构建分布应用,使用java编写,使用了一个文件树结构相似的数据模型

2.2.7------Hive

1.Hive是一个基于Hadoop的数据仓库工具,可以用Hadoop文件中的数据集进行数据整理,分析,存储,提供类似SQL语言的查询语言HiveQL

2.2.8-----Pig

1.Pig是一种数据流语言和运行环境,适合使用Hadoop和mapreduce平台来查询大型半结构化数据集

2.简化了Hadoop的工作任务,在MapReduce的基础上创建了更简单的过程语言抽象,为Hadoop提供了一种近似SQL语言的接口

3.Pig是一个相对简单的语言,当我们需要从大型数据集中搜索满足某个特定条件的数据集时,pig比MapReduce好,只需要编写一个脚本在集群中自动并行处理与并发

2.2.9------Sqoop

1.主要用来在Hadoop和关系数据库之间交换数据

2.Sqoop主要通过JDBC进行交互

3.Sqoop是专门为大数据集设计的,支持增量更新,可以将新纪录添加到最近一次导出的数据源上,或者指定上次修改的时间戳

2.2.10-----Chukwa

1.Chuwa是一个开源,用于监控大型分布式系统的数据收集系统,可以将各类数据类型收集成适合Hadoop处理的文件,并保存在HDFS中进行各种MapReduce操作

2.Chuwa构建在HDFS和MapReduce框架之上,是一个强大灵活的数据集,用于展示,监控和分析已经收集的数据

 

 

 

 


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
author-avatar
涵涵
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有