Hadoop期末考试自用

绪论

大数据定义

  • 从字面意思来看,大数据指的是巨量数据

  • 最早提出“大数据”这一概念的是全球知名咨询公司麦肯锡,他是这样定义大数据的:

    • 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,

    • 具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度四大特征。

大数据的基本特点

  • 大量(Volume)

  • 多样(Varity)

  • 时效性(Velocity)

  • 结果准确性(Veracity)

  • 价值(Value)

大数据处理的主要技术特点与难点

  • 技术综合性、交叉性强

  • 数据规模大,传统计算方法和系统失效,计算性能问题突出

  • 应用需求驱动特性

研究大数据的意义

  • 研究大数据,最重要的意义是预测。

  • 可以应用大数据去了解事物发展的客观规律、了解人类行为,并且能够帮助我们改变过去的思维方式,建立新的数据思维模型,从而对未来进行预测和推测

Hadoop简介及安装部署

Hadoop简介及生态体系

Hadoop的优势

  • 扩容能力强

  • 成本低

  • 高效率

  • 可靠性

  • 高容错性

Hadoop的生态系统

Hadoop期末考试自用_第1张图片

  • HDFS分布式文件系统

    • HDFS是Hadoop的分布式文件系统,它是Hadoop生态系统中的核心项目之一,是分布式计算中数据存储管理基础。

  • MapReduce分布式计算框架

    • MapReduce是一种计算模型,用于大规模数据集(大于1TB)的并行运算

  • Yarn资源管理框架

    • Yarn(Yet Another Resource Negotiator)是Hadoop 2.0中的资源管理器,它可为上层应用提供统一的资源管理和调度。

  • Sqoop数据迁移工具

    • Sqoop是一款开源的数据导入导出工具,主要用于在Hadoop与传统的数据库间进行数据的转换。

  • Mahout数据挖掘算法库

    • Mahout是Apache旗下的一个开源项目,它提供了一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员方便快捷地创建智能应用程序

  • HBase分布式存储系统

    • HBase是Google Bigtable克隆版,它是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

  • Zookeeper分布式协作服务

    • Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和HBase的重要组件。

  • Hive基于Hadoop的数据仓库

    • Hive是基于Hadoop的一个分布式数据仓库工具,可以将结构化的数据文件映射为一张数据库表,将SQL语句转换为MapReduce任务进行运行

  • Flume日志收集工具

    • Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

    Hadoop集群架构

hadoop集群

Hadoop期末考试自用_第2张图片

Hadoop集群运行环境搭建

HDFS分布式文件系统

相关概念

  • 文件系统。文件系统是操作系统提供的用于解决“如何在磁盘上组织文件”的一系列方法和数据结构。

  • 文件系统。如单机负载高、数据不安全等问题。

  • HDFS。英文全称为Hadoop Distributed File System,是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,它是基于流式数据访问和处理超大文件的需求而开发的分布式文件系统,可以运行于廉价的商用服务器上。 HDFS 源于谷歌公司在2003年10月份发表的GFS(Google File System) 论文

HDFS存储架构

HDFS存储架构

  • HDFS采用主从架构(Master/Slave架构)。

  • HDFS集群是由一个NameNode和多个的 DataNode组成

    • NameNode是HDFS集群的主服务器,通常称为名称节点或者主节点。一旦NameNode关闭,就无法访问Hadoop集群。NameNode主要以元数据的形式进行管理和存储,用于维护文件系统名称并管理客户端对文件的访问;NameNode记录对文件系统名称空间或其属性的任何更改操作;HDFS负责整个数据集群的管理,并且在配置文件中可以设置备份数量,这些信息都由NameNode存储。

    • DataNode是HDFS集群中的从服务器,通常称为数据节点。文件系统存储文件的方式是将文件切分成多个数据块,这些数据块实际上是存储在DataNode节点中的,因此DataNode机器需要配置大量磁盘空间。它与NameNode保持不断的通信,DataNode在客户端或者NameNode的调度下,存储并检索数据块,对数据块进行创建、删除等操作,并且定期向NameNode发送所存储的数据块列表

Hadoop期末考试自用_第3张图片

HDFS的特点

优点

  • 高容错

  • 流式数据访问

  • 支持超大文件

  • 高数据吞吐量

缺点

  • 高延迟

  • 不适合小文件存取

  • 不适合并发写入

HDFS的Shell常用命令

Shell在计算机科学中俗称“壳”,是提供给使用者使用界面的进行与系统交互的软件,通过接收用户输入的命令执行相应的操作,Shell分为图形界面Shell命令行式Shell

Hadoop期末考试自用_第4张图片

MapReduce计算框架

MapReduce概述

MapReduce的核心思想

  • MapReduce的核心思想是“分而治之”

  • MapReduce作为一种分布式计算模型,它主要用于解决海量数据的计算问题。

Hadoop期末考试自用_第5张图片

  • MapReduce就是“任务的分解与结果的汇总”。即使用户不懂分布式计算框架的内部运行机制,但是只要能用Map和Reduce思想描述清楚要处理的问题,就能轻松地在Hadoop集群上实现分布式计算功能

MapReduce编程模型

  • MapReduce是一种编程模型,用于处理大规模数据集的并行运算

  • 其中Map阶段用于对原始数据进行处理,Reduce阶段用于对Map阶段的结果进行汇总,得到最终结果。

MapReduce工作原理

MapReduce工作过程

  1. 输入和拆分

  2. 执行map

  3. 执行shuffle过程

  4. 执行reduce

  5. 写入文件

MapReduce编程组件

  • InputFormat组件

  • Mapper组件

  • Reducer组件

  • Partitioner组件

  • Combiner组件

  • OutputFormat组件

  • InputFormat组件

MapReduce经典案例/大题wordCount统计单词出现次数

  • 案例分析

    • 首先MapReduce将文件拆分成splits,由于测试用的文件较小,只有二行文字,所以每个文件为一个split,并将文件按行分割形成对,如下图所示,这一步由MapReduce框架自动完成,其中偏移量(即key值)包括了回车所占的字符数(Windows和Linux环境会不同)

    • 将分割好的对交给用户定义的Map方法进行处理,生成新的

    • 得到Map方法输出的对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果

    • Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的Reduce方法进行处理,得到新的对,并作为WordCount的输出结果

  • Map和Reduce阶段实现

    • 主要编写Map和Reduce函数.这个Map函数使用StringTokenizer函数对字符串进行分隔,通过write方法把单词存入word中

    • k/v来自于Map函数中的context,可能经过了进一步处理(combiner),同样通过context输出

    • 编写MapReduce程序运行Configuration类:Map/Reduce的配置类,向hadoop框架描述Map-Reduce执行的工作

    • 程序打JAR包,打包界面如下

    • 配置WordCount.java运行时需要两个参数,第一个参数是输入文件:hdfs://bigdata02:9000/input/ 第二个参数是结果输出路径hdfs://bigdata02:9000/output

    • 运行WordCount程序, 浏览器访问:http:// 172.6.106.69:50070,namenode监控界面,选择utillities-browse the file system,出现以下界面,可以看到刚才提交WordCount程序在hadoop集群生成的output目录

HBase分布式数据库

HBase的概述

HBase的简介

  • HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,利用HBase可在廉价PC服务器上搭建起大规模结构化存储集群。

  • HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据

HBase架构

  • HBase构建在Hadoop HDFS之上,

  • Hadoop HDFS为HBase提供了高可靠的底层存储支持,

  • Hadoop MapReduce为HBase提供高性能的计算能力,Zookeeper为HBase提供稳定服务和容错机制。HBase的整体架构如下所示。

Hadoop期末考试自用_第6张图片

  • Client:即客户端,它通过RPC协议与HBase通信。

  • Zookeeper:即分布式协调服务,在HBase集群中的主要作用是监控HRegionServer的状态。

  • HMaster:即HBase的主节点,用于协调多个HRegion Server,主要用于监控HRegion Server的状态以及平衡HRegion Server之间的负载。

  • HRegion Server:即HBase的从节点,它包括了多个HRegion,主要用于响应用户的I/O请求,向HDFS文件系统读写数据。

  • HRegion:即HBase表的分片,每个Region中保存的是HBase表中某段连续的数据。

  • Store:每一个HRegion包含一或多个Store。每个Store用于管理一个Region上的一个列族。

  • MemStore:即内存级缓存,MemStore 存放在store中的,用于保存修改的数据(即KeyValues形式)

  • StoreFile:MemStore中的数据写到文件后就是StoreFile,StoreFile底层是以HFile文件的格式保存在HDFS上。

  • HFile:

  • HLog

Hbase特点

1)容量巨大:单表可以有百亿行、数百万列。

2)无模式:同一个表的不同行可以有截然不同的列。

3)面向列:HBase是面向列的存储和权限控制,并支持列独立索引。

4)稀疏性:表可以设计得非常稀疏,值为空的列并不占用存储空间。

5)扩展性:HBase底层文件存储依赖HDFS,它天生具备可扩展性。

6)高可靠性:HBase提供了预写日志(WAL)和副本(Replication)机制,防止数据丢失。

7)高性能:底层的LSM(Log-Structured Merge Tree)数据结构和Rowkey有序排列等架构上的独特设计,使得HBase具备非常高的写入性能。

数据存储方式

  • Region在行方向上的存储方式:HBase表的数据按照行键RowKey的字典序进行排列,并且切分多个HRegion存储,存储方式如下所示。

Hadoop期末考试自用_第7张图片

  • HRegion的切分方式:每个Region存储的数据是有限的,如果当Region增大到一个阀值(128)时,会被等分切成两个新的Region,切分方式如下所示

Hadoop期末考试自用_第8张图片

  • HRegion的分布方式

    Hadoop期末考试自用_第9张图片

寻址机制

Hadoop期末考试自用_第10张图片

Zookeeper中存储的是ROOT表的数据,而ROOT表中存储的是META表的Region信息,也就是所有RegionServer的地址。

HBase数据库和传统数据库的区别

  • 存储模式

  • 表字段

  • 可延伸性

HBase的安装

你可能感兴趣的:(hadoop)