Hadoop大数据教程(一)

Hadoop简介

归功于大数据处理系统的发展,以 Hadoop为代表的解决方案和工具逐渐成熟,进行大数据应用开发的门槛正在逐渐降低。本书就是学习如何使用Hadoop完成大数据解决方案。学习Hadoop,仅仅需要了解一些 Linux的操作,以及Java编程基础知识就足够进行大数据课程的学习。对于Linux要了解常用的 shell命令和操作,如安装软件、解压包、配置环境变量等对于Java基础要了解面向对象的概念、集合类, Eclipse的使用等。
针对初学者来说,Hadoop运行环境的安装是个门槛,很大程度上是由于大家对于Linux系统相对不熟悉而实际上Hadoop的安装并不复杂。在配置运行环境时可先简单了解配置步骤与方法按教材所示步骤逐步完成,待后面讲解每个模块时再回顾各配置属性的具体含义。
首先要明确一点,Hadoop解决了大数据的存储和数据处理作业的并行运算这两个问题。幸运的是,这两个核心模块对开发人员都是透明的,也就是说我们不用去关心它是如何进行底层的分布式存储与计算,仅需要我们能够使用 Hadoop提供的HDFS文件管理命令和 MapReduce并行计算的API即可让 Hadoop为我们处理大数据

结构化、半结构化、非结构化数据

名称涵义
结构化数据业界是指关系模型数据,即以关系数据库表形式管理的数据。也就是我们常用的Mysql、Oracle数据库
半结构化数据没有固定模式的数据,如WORD、PDF、PPT、EXCEL,各种格式的图片、视频等。
非结构化数据没有固定模式的数据,如WORD、PDF、PPT、EXCEL,各种格式的图片、视频等。

Hadoop概述

我们以前学习了数据库知识,知道数据库主要保存和处理结构化数据。而Hadoop除了可以处理结构化数据,还可以处理非结构化和半结构化数据。事实上,Hadoop已经成为存储、处理和分析大数据的标准平台。当人们说要搭建大数据平台时,很多时候默认就是搭建Hadoop平台。
Hadoop可以存储以下类型的内容。

  • 结构化数据
  • 半结构化数据,比如日志文档
  • 完全没有结构的内容,比如文本文档
  • 二进制数据,比如音频、视频等
Hadoop系统有以下特征
  • 可靠性高。采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。
  • 可扩展性好。Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上。
  • 性价比高。Hadoop采用廉价的计算机集群,成本比较低,普通用户也很容易用自己的PC搭建 Hadoop运行环境。
  • 灵活
  • 高效性。作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效地处理PB级数据。
  • 高容错性。采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。
  • 运行在 Linux平台上。Hadoop是基于Java语言开发的,可以较好地运行在 Linux平台上。
  • 支持多种编程语言。 Hadoop上的应用程序也可以使用其他语言编写,如C++。

Hadoop的版本

Hadoop的版本比较混乱,总的来说,Hadoop分为两代

Apache Hadoop大版本说明
Hadoop 3.03.xx
第二代Hadoop2.02.xx下一代Hadoop由0.23.x演化而来
第二代Hadoop2.00.23.x下一代Hadoop
第一代Hadoop1.01.0.x稳定版,由0.20.x演化而来
第一代Hadoop1.00.22.x非稳定版
第一代Hadoop1.00.21.x非稳定版
第一代Hadoop1.00.20.x非稳定版,最后演化成1.0.x

Apache Hadoop版本分为两代,第一代Hadoop称为Hadoop 1.0,包含0.20.x,0.21.x,0.22.x,最后0.22.x演化为稳定版1.0.x。Hadoop2.0指的是0.23.x,2.x.x。在本课程中,我们将选择Hadoop2.6.5。
第二代Hadoop一个重大的变化是重构了MapReduce。Hadoop的下载地址为http://hadoop.apache.org/release.html

Hadoop子项目

在这里插入图片描述

  • HDFS:Hadoop分布式文件系统,是Hadoop生态系统的核心和基石。是谷歌文件系统(Google File System,GFS)的开源实现。HDFS的设计思路是将ZB级超大数据保存在廉价的大型服务器集群上,数据可以同时备份多地。并且把硬件故障作为一种常态来考虑,能够保证在部分硬件发生故障时仍然能够保证文件系统的整体可用性和可靠性。
  • MapReduce/Yarn:并行编程模型。Yarn是第二代的MapReduce框架。MapReduce允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,并将其运行于计算机集群上,完成海量数据的处理。通俗地说,MapReduce的核心思想就是“分而治之”,它把需要处理的数据集切分为若干独立的数据块,分发到各个分节点来共同并行完成;最后将所有的结果合并成最终的结果。
  • Hive:Hive是一个基于Hadoop的数据仓库工具,提供类似SQL语言的查询方式对Hadoop中的数据进行查询,这种类似SQL的语言称为Hive QL。Hive QL语言底层转换为MapReduce任务进行处理,而不必开发专门的MapReduce应用。
  • HBase:全称为Hadoop Database,Hadoop的分布式,面向列的数据库,来源于Google的BigTable论文,HBase的底层一般采用HDFS进行数据存储,主要用于随机访问、实时读写的大数据。HBase与传统的数据库的一个重要的区别是一个采用列的方式存储,一个采用行的方式存储。
  • ZooKeeper:是一个为分布式应用所设计的协调服务,主要是为用户提供同步、配置管理、分组和命名等服务,减轻分布式应用程序所承担的协调服务。我们说过,Hadoop生态系统的子项目喜欢用动物的名称命名,zookeeper的中文意思是动物园管理员,就是用来管理Hadoop的各个子项目的。
  • Sqoop:Sqoop是SQL-to-Hadoop的缩写,主要用来在Hadoop和关系型数据库之间交换数据。通过Sqoop可以方便地将数据从MySQL、Oracle、PostgreSQL等关系型数据库中导入Hadoop,或者将数据从Hadoop导出到关系数据库。Sqoop主要通过JDBC完成和关系型数据库进行交互,理论上支持JDBC的关系型数据库都可以和Sqoop交互。
  • Flume:日志采集系统。
  • Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
  • Pig:一个对大型数据集进行分析、评估的平台,主要作用类似于数据库里的存储过程。
  • Oozie:可以将多个MapReduce作业组合到一个逻辑工作单元中,进行工作计划的安排,类似于工作流管理引擎
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值