大数据技术基础学习总结

大数据技术基础-期末94pass!

第0章(大三下一共学了8章)

第1章 大数据概述

大数据发展的三个阶段
阶段时间内容
1、萌芽上世纪90年代至本世纪初
2、成熟本世纪前十年
3、大规模应用期2010年后大数据渗透到各行各业
大数据的特点
  1. 数据量大
  2. 数据类型繁多:大数据是由结构化和非结构化数据组成的
    1. 10%的结构化数据,存储在数据库
    2. 90%的非结构化数据,它们与人类信息密切相关
  3. 处理速度快:p从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少
  4. 价值密度低,商业价值高
大数据的关键技术
  1. 数据采集
  2. 数据存储与管理
  3. 数据处理与分析
  4. 数据隐私与安全
  5. 两大核心技术
    1. 分布式存储(HDFS、HBase、NoSQL)
    2. 分布式处理(MapReduce)
大数据计算模式
  1. 批处理计算:MapReduce、Spark
  2. 流计算:Storm、S4
  3. 图计算:Pregel
  4. 查询分析计算:Hive
云计算
  • **概念:**云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源
  • 关键技术:虚拟化、分布式存储、分布式计算、多租户
  • 云计算数据中心:数据中心是云计算的重要载体,为云计算提供计算、存储、带宽等各种硬件资源,为各种平台和应用提供运行支撑环境
物联网
  • 概念+关键技术物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化和远程管理控制

云计算、大数据和物联网代表了IT领域最新的技术发展趋势,三者既有区别又有联系

习题:

1、大数据的计算模式包括__批处理计算_____、流计算、图计算和查询分析计算。

2、第三次信息化浪潮的标志是物联网、云计算___、大数据。

第2章 Hadoop概述

Hadoop简介
  1. Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构
  2. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中
  3. Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce
  4. Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力
  5. 几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持Hadoop
Hadoop的特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性

  • 高可靠性
  • 高效性
  • 高可扩展性
  • 高容错性
  • 成本低
  • 运行在Linux平台上
  • 支持多种编程语言
Hadoop应用现状

应用范围包括 雅虎(Yahoo!)、Facebook(国外),百度、淘宝、华为、中国移动、网易(国内)

Apache Hadoop版本演变

共分为两代,分别叫Hadoop1.0(0.22x增加了NameNode)和Hadoop2.0(完全不同于1.0,包含HDFS Federation和YARN(分布式计算框架)两个系统)

Hadoop集群中有哪些节点类型

Hadoop框架中最核心的设计是海量数据提供存储的HDFS和对数据进行计算的MapReduce

  • 一个基本的Hadoop集群中的节点主要有
    • NameNode:负责协调集群中的数据存储
    • DataNode:存储被拆分的数据块
    • JobTracker:协调数据计算任务
    • TaskTracker:负责执行由JobTracker指派的任务
    • SecondaryNameNode:帮助NameNode收集文件系统运行的状态信息

习题:

1、下列名此解释不正确的是 C

A、HDFS:分布式文件系统,是Hadoop项目的两大核心之一,是谷歌GFS的开源实现

B、Hive:一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储

C、HBase:提供高可靠性、高性能、分布式的行式数据库,是谷歌BigTable的开源实现

D、Zookeeper:针对谷歌Chubby的一个开源实现,是高效可靠的协同工作系统

2、启动hadoop所有进程的命令是

start-all.sh

3、Hadoop是______Apache_公司旗下的分布式计算平台。

4、Hadoop项目结构中,______YARN_负责资源管理和调度

5、Hadoop的核心组件是___HDFS_____和__ MapReduce______。

第3章 分布式文件系统HDFS

HDFS简介

实现目标:

  • 兼容廉价的硬件设备
  • 流数据读写
  • 大数据集
  • 简单的文件模型
  • 强大的跨平台兼容性

但是也存在一些局限性

  • 不适用低延迟数据访问
  • 无法高效存储大量小文件
  • 不支持写入及任意修改文件

HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位,块的大小远远大于普通文件系统,可以最小化寻址开销。带来了一些好处:

  • 支持大规模文件存储
  • 简化系统设计
  • 适合数据备份

问:名称节点运行期间EditLog不断变大(因为HDFS所有更新操作都是直接写到EditLog里面)如何解决?

答:使用 SecondaryNameNode第二名称节点

其用来保存名称节点中HDFS元数据信息备份,并且减少名称节点重启的时间,并且其一般是单独运行在一台机器上

数据节点
  • 数据节点是分布式文件系统HDFS的工作节点负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表
  • 每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中
HDFS体系结构
  • HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)
HDFS命名空间管理
  • 命名空间包括目录、文件和块
通信协议
  • HDFS是一个部署在集群上的分布式文件系统,因此,很多数据需要通过网络进行传输
  • 所有的HDFS通信协议都是构建在TCP/IP协议基础之上的
  • 名称节点和数据节点之间则使用数据节点协议进行交互
  • 客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的。
HDFS体系结构的局限性

由于HDFS仅仅设置了一个名称节点,尽管这样大大简化了系统设计,但是也带来了一些较为明显的局限性

  • 命名空间的限制
  • 性能的瓶颈
  • 隔离问题
  • 集群的可用性
HDFS存储原理
1、数据存放

HDFS为保证系统的容错性和可用性,HDFS采用多副本方式对数据进行冗余存储

多副本的方式具有以下有点

  • 加快数据的传输速度
  • 容易检查数据错误
  • 保证数据的可靠性
2、数据读取

HDFS提供了一个API可以确定一个数据节点所属的机架ID,客户端也可以调用API获取自己所属的机架ID

3、数据错误与恢复

主要包括以下几种情形:名称节点出错、数据节点出错和数据出错。

  1. 名称节点出错:名称节点保存了所有的元数据信息
    1. 最核心两大数据结构为FsImage和Editlog
    2. 因此如果出错可以将核心文件备份到服务器第二名称节点,然后再根据其中的Fs…和Ed…进行恢复
  2. 数据节点出错
    1. HDFS和其它分布式文件系统的最大区别就是可以调整冗余数据的位置
  3. 数据出错

习题:

1、假设已经配置好环境变量,启动HDFS和关闭HDFS的命令分别是 start-dfs.shstop-dfs.sh

2、分布式文件系统HDFS采用了主从结构模型,由计算机集群中的多个节点构成的,这些节点分为两类,一类存储元数据叫__名称节点__,另一类存储具体数据叫 ____数据节点

3、分布式文件系统HDFS是谷歌分布式文件系统GFS(Google File System)的一种开源实现

4、HDFS的名称节点保存两个核心的数据结构是FsImage和EditLog

第4章 HBase分布式数据库

  • HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库
  • 主要用来存储非结构化和半结构化的松散数据
  • HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表
HBase系统架构
  1. 客户端
  2. Zookeeper服务器
  3. Master:主服务器Master主要负责表和Region的管理工作
  4. Region: Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求

第5章 NoSQL数据库

NoSQL定义:非关系型的数据库(Not Only SQL)
NoSQL数据库的特点
  • 灵活的可扩展性
  • 灵活的数据模型
  • 与云计算紧密结合
典型的NoSQL类型
  1. 键值数据库:扩展性号,灵活性好,大量写操作时性能高(使用者:百度云数据库[ Redis ]、GitHub)
  2. 列族数据库⏰查找速度快,容易进行分布式拓展,复杂性低
  3. 文档数据库:
  4. 图形数据库
BASE

一个数据库事务具有ACID四性,A(**原子性:**要么全部执行,要么都不执行),C(**一致性:**事务在完成时,必须是所有的数据都保持一致的状态),I(**隔离性:**由并发事务所做的修改必须与任何其他并发事务所做的修改隔离),D(**持久性:**事务完成后对系统影响是永久的)

BASE的基本含义是基本可用(Basically Available)、软状态(Soft-state)、和最终一致性(Eventual consistency)

文档数据库MongoDB

是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

第6章 云数据库

云数据库概念:

云数据库是部署和虚拟化在云计算环境中的数据库。

云数据库具有以下特性
  • 动态可扩展
  • 高可用性
  • 较低的使用代价
  • 易用性
  • 高性能
  • 免维护
  • 安全
UMP系统

UMP系统是低成本和高性能的MySQL云数据库方案

  1. Mnesia是一个分布式数据库管理系统

  2. RabbitMQ是一个工业级的消息队列产品

  3. Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服务

    Zookeeper主要发挥了三个作用

    1. 作为全局的配置服务器
    2. 提供分布式锁(选出一个集群的“总管”)
    3. 监控所有MySQL实例
  4. LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统

  5. Controller服务器向UMP集群提供各种管理服务,实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能

  6. Web控制台向用户提供系统管理界面

  7. Proxy服务器向用户提供访问MySQL数据库的服务

亚马逊
阿里云RDS简介

RDS是阿里云提供的关系型数据库服务

RDS具有安全稳定、数据可靠、自动备份、管理透明、性能卓越,灵活扩容等优点

第7章 MapReduce

谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现,后者比前者使用门槛低很多

传统并行计算框架MapReduce
集群架构/容错性共享式(共享内存/共享存储),容错性差非共享式,容错性好
硬件/价格/扩展性刀片服务器、高速网、SAN,价格贵,扩展性差普通PC机,便宜,扩展性好
编程/学习难度what-how,难what,简单
适用场景实时、细粒度计算、计算密集型批处理、非实时、数据密集型

MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce

编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算

MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理

MapReduce设计的一个理念就是“计算向数据靠拢”,因为,移动数据需要大量的网络传输开销

MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker

Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定要用Java来写

MapReduce执行的全过程包括以下几个主要阶段:

  • 从分布式文件系统读入数据
  • 执行Map任务输出中间结果
  • 通过 Shuffle阶段把中间结果分区排序整理后发送给Reduce任务
  • 执行Reduce任务得到最终结果并写入分布式文件系统

第8章 Hadoop架构再探讨

Hadoop1.0的核心组件仅指MapReduce和HDFS

Hadoop的优化与发展体现在两个方面

  1. 自身两个核心组件架构的设计与改进
  2. Hadoop生态系统其他组件不断丰富,除了原有的Pig、Hive、HBase等其他组件之外,还有Spark、Tez等新的组件加入
组件Hadoop1.0的问题Hadoop2.0的改进
HDFS单一名称节点,存在单点失效问题设计了HDFS HA,提供名称节点热备机制
HDFS单一命名空间,无法实现资源隔离设计了HDFS Federation,管理多个命名空间
MapReduce资源管理效率低设计了新的资源管理框架YARN
MapReduce1.0与2.0

在MapReduce1.0中,它既是计算框架也是一个资源管理调度框架,而到了Hadoop2.0后,YARN拥有了资源管理调度功能,而MapReduce2.0就是一个计算框架

YARN的目标就是实现一个集群多个框架

几个Hadoop的生态组件

Pig
  • 提供了类似SQL的Pig Latin语言(包含Filter、GroupBy、Join、OrderBy等操作,同时也支持用户自定义函数)
  • 允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的MapReduce应用程序
  • 功能:加载数据、表达转换数据以及存储最终结果
Tez
  • Tez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架
  • 核心思想是将Map和Reduce两个操作进一步拆分
  • Tez框架可以发挥重要的作用,借助于Tez框架实现对MapReduce、Pig和Hive等的性能优化(目的)
Spark

是一个可应用于大规模数据处理的快速、通用引擎

Kafka
  • Kafka是一种高吞吐量的分布式发布订阅消息系统,用户通过Kafka系统可以发布大量的消息,同时也能实时订阅消费消息
  • Kafka可以同时满足在线实时处理和批量离线处理

一些名词解释猜测

Hadoop: Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

HDFS: Hadoop下分布式文件系统(为海量数据提供存储)以流式数据访问模式来存储超大文件,运行于商用硬件集群上,是管理网络中跨多台计算机存储的文件系统。

MapReduce:分布式并行编程模型(对数据进行计算),它的理念是“计算向数据靠拢”。

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

YARN:负责资源管理与调度

HBase: HBase是一个分布式的、面向列的开源数据库,它是一个适合于非结构化数据存储的数据库(NoSQL)。

NoSQL:泛指非关系型的数据库

云数据库:指被优化或部署到一个虚拟计算环境中的数据库,可以实现按需付费、按需扩展、高可用性以及存储整合等优势。

Hive:基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

MongoDB: MongoDB是一个基于分布式文件存储的数据库

Spark: Spark是一种快速、通用、可扩展的大数据分析引擎

Pig:大规模数据分析平台

Tez:支持DAG作业的计算框架

ZooKeeper:是一个集群管理工具,常用于分布式计算,提供配置维护、域名服务、分布式同步等

Kafka:分布式发布订阅消息系统

第9章 Spark

•Spark的核心是统一的抽象RDD,在此之上形成了结构一体化、功能多元化的完整的大数据生态系统,支持内存计算,SQL即席查询、实时流式计算、机器学习和图计算

第10章 流计算

流计算处理流程为:数据实时采集、数据实时计算、实时查询服务

Storm流处理框架具有可扩展性、高容错性、能可靠地处理消息的特点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值