大数据处理架构Hadoop

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框架之上,是一个强大灵活的数据集,用于展示,监控和分析已经收集的数据

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值