Hadoop学习(一)Hadoop介绍

1.1 产生背景

HADOOP最早起源于Nutch。Nutch要构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,随着抓取网页数量的增加,如何解决数十亿网页的存储和索引成为问题。2003年开始谷歌陆续发表的三篇论文为该问题提供了可行的解决方案。分布式文件系统(GFS),可用于处理海量网页的存储;分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题;BigTable数据库提供了一种可以在超大数据集中进行实时CRUD操作的功能。Nutch开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

1.2 Hadoop概念

1.2.1 介绍

Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop是根据Google公司发表的MapReduce和Google档案系统的论文自行实作而成。Hadoop是一套开源的软件平台,利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。诞生于2006年。Hadoop的官网:http://hadoop.apache.org/; Hadoop与Google一样,都是小孩命名的,是一个虚构的名字,没有特别的含义。从计算机专业的角度看,Hadoop是一个分布式系统基础架构,由Apache基金会开发。Hadoop的主要目标是对分布式环境下的“大数据”以一种可靠、高效、可伸缩的方式处理。Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分割成许多小部分,而每个部分都能在集群中的任意节点上执行或重新执行。Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。

1.2.2 核心组件

  1. HDFS:一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。构建于廉价计算机集群之上的分布式文件系统,低成本、高可靠性、高吞吐量。
  2. MapReduce: 一种用于并行处理大型数据集的基于YARN的系统。分布式编程模型和软件框架,用于在集群上编写对海量数据处理的并行化程序
  3. YARN:作业调度和集群资源管理的框架
  4. Common: 支持其他Hadoop模块的常用工具。整体架构提供基础支撑性功能,主要包括了文件系统、RPC和数据串行化库
  5. Hive: 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。 其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。数据仓库工具,将结构化数据文件映射为库表,并提供强大的类SQL查询功能
  6. Hbase:分布式的、面向列的数据库,是一个适合于非结构化海量数据存储的数据库
  7. Pig:适合海量数据分析的脚本语言工具,包括了一个数据分析语言和支持的运行环境
  8. Sqoop:是一款开源的工具,主要用于在 Hadoop、 Hive 与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle等)中的数据导进到Hadoop 的HDFS中,也可以将HDFS的数据导进到关系型数据库中。在Hadoop与传统数据库间进行数据交换的工具,支持两者之间的数据导入和导出
  9. Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
  10. Zookeeper:是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。维护Hadoop集群的配置和命名信息,并提供分布式锁同步功能和群组管理功能
  11. Ambari:安装、管理和监控Hadoop集群的Web界面工具。目前已支持大部分组件的管理,就Ambari的作用来说,就是创建、管理、监视 Hadoop 的集群
    在这里插入图片描述

1.2.3 hadoop1.X和hadoop2.X:

Hadoop1.XHadoop2.X
Hadoop中的Mapreduce同时处理业务逻辑运算和资源调度,耦合性较大。在Hadoop2.X 新增加了 Yarn,Yarn只负责资源调度,Mapreduce只负责计算

1.3 Hadoop序列化

1.3.1 定义

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。
反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。

1.3.2 原因

一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。

1.3.3 Hadoop序列化特点:

  1. 紧凑:高效使用存储空间。
  2. 快速:读写数据的额外开销小。
  3. 可扩展:随着通信协议的升级而可升级
  4. 互操作:支持多语言的交互。

1.3.4 Hadoop的序列化格式:Writable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值