大数据课程复习题
-
大数据的定义
大数据,指的是所涉及的资料量规模巨大到无法通过目前的主流软件工具,在合理 时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资 讯。 -
大数据的三个特点
3Vs:
-Volume(大量)数据量大,从 TB 级别跃升到 PB 级别
-Variety(多样)数据类型繁多
·非结构化:文本、图形、声音等
·半结构化:日志
·结构化数据:行列规整的表单数据
·多结构化数据:以上三种类型混合的数据
-Velocity(高速)数据的时效性,数据仅在一个短暂的时间范围有价值。 -
Hadoop 项目起始于 2002 年,创始人是 Doug Cutting 4. Hadoop 的两个核心组成部分
-分布式文件系统——HDFS(Nutch Distributed File System)
·数据被分割成小块存于上千的节点上
-分布式数据处理架构——MapReduce
·MapReduce 在数据节点上处理,降低 I/O 成本
·MapReduce 只是一个软件架构,充分灵活,是开发者易于实现多种多样的应用程序。 -
Hadoop 的优点
-高可靠性
·Hadoop 按位存储和处理数据的能力值得人们信赖。
-高扩展性
·Hadoop 是在可用的计算机集簇间分配数据并完成计算业务的,这些集簇可以方便地 扩展到数以千计的节点中。
-高效性
·Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速 度非常快。
-高容错性
Hadoop 能够自动的保存数据的多个副本,并且能够自动将失败的任务重新分配。
-低成本
·与一体机、商用数据仓库等相比,Hadoop 是开源的,项目的软件成本因此会大大降 低。 -
Hadoop 生态系统构成
项目名称 说明
Ambari 整合的 Hadoop 集群管理工具,包括安装、监控和维护
Flume 分布式日志收集系统
HBase 分布式、面向列的开源数据库,适用于非结构大数据存储
HCatalog 用于管理 Hadoop 产生的数据的表存储管理系统
Hive 基于 HDFS 的数据仓库工具可以将结构化的文件映射为一张数据库表, 提供类 SQL 语言 Hive QL
Hue Hadoop 图形界面管理工具,可以浏览文件及发出 Hive/Pig 指令
Pig 用于大数据分析工具,包含一个能产生 MapReduce 程序的编译器及查 询语言 Pig Latin
Sqoop 用于 Hadoop 系统与传统数据库间进行数据交换的工具
ZooKeeper 是一个分布式应用程序协调服务器
Mahout 数据挖掘算法库
- Hadoop 的三种运行模式
-独立(本地/单机)运行模式:无需任何守护进程,所有的程序都运行在同一个 JVM 上 执行。在独立模式下调试 MR 程序非常高效方便。所以一般该模式主要是在学习或者开 发阶段调试使用。
-伪分布式模式:Hadoop 守护进程运行在本地机器上,模拟一个小规模的集群,换句话
说,可以配置一台机器的 Hadoop 集群,伪分布式是完全分布式的一个特例。
-完全分布式模式:Hadoop 守护进程运行在一个集群上。
注意:所谓分布式要启动守护进程 ,即:使用分布式 hadoop 时,要先启动一些准备 程序进程,然后才能使用比如 start-dfs.sh start-yarn.sh。而本地模式不需要启动这些守 护进程
- Hadoop 集群的构成,主从节点内部各自运行的主要进程,及其作用 构成:Hadoop 系统由两个核心子系统和多个扩展子系统组成。
主要进程:
NameNode、SecondaryNameNode 和 JobTracker —— Hadoop 主节点主要进程
DataNode 和 TaskTracker —— Hadoop 从节点主要进程 作用:
Hadoop 主节点是集群的核心,负责协调和管理对所有从节点的数据访问和计算工作。 NameNode:记录文件是如何分割成数据块,以及存储数据块的数据节点的信息;对内 存和 I/O 进行集中管理。
SecondaryNameNode:负责监控 HDFS 状态的辅助后台进程;不接受或记录任何实时的 数据变化;定期与 NameNode 通信,并定期保存 HDFS 元数据的快照,从而降低由于 NameNode 宕机所带来的损失;可以作为备用的 NameNode。 JobTracker:负责将应用程序与 Hadoop 系统对接;确认处理文件,并为所执行任务分配 指定的节点主机;负责监控所运行的任务,一旦发现某任务失败,将重启任务。 Hadoop 从节点担任着数据分布式存储和计算工作。
DataNode:负责将 HDFS 数据块读写到本地文件系统;客服端直接与 DataNode 服务器 的进程进行读/写访问。
TaskTracker:与 DataNode 进程结合进行工作;独立管理其所在从节点上的任务进程; 可以产生多个 JVM 进程,以并行处理多个 Map 和 Reduce 任务;与 JobTracker 进行定时 通讯联络。
- HDFS 针对硬件故障方面的设计目标是什么
·整个 HDFS 系统可能是由数百上千或千个存储着文件数据片段的服务组成。
·因此硬件故障是常态,而非异态。
·故障检测和自动快速恢复是 HDFS 一个非常核心的设计目标。
-
HDFS 针对大数据集方面的设计目标是什么
·运行在 HDFS 之上的应用程序通常具有很大量的数据集,典型的 HDFS 文件大小是 GB
到 TB 的级别。
·因此,HDFS 被设计为可支持大文件存储。
·它应该能提供整体上很高的数据传输带宽,能在一个集群里扩展到数百个节点,而且 还应该支持千万级别的文件。 -
不适用 HDFS 的主要场景有哪些
-将 HDFS 用于要求低延迟数据访问的场景
·由于 HDFS 是为搞数据吞吐量应用而设计的,必然一高延迟为代价。
-存储大量小数据文件
·HDFS 中元数据(文件的基本信息)存储在 NameNode 的内存中,而 NameNode 为单 点进程。这样小文件数量达到一定程度时,NameNode 内存就吃不消了。 -
HDFS 系统结构图
-一个 HDFS 集群有一个 NameNode,它的管理文件命名空间和调度客户端访问文件的主 服务器。
-多个 DataNode,通常是一般是一个节点一个,负责管理它所在节点的存储。 -
HDFS 系统的主要功能组件的作用(Block,Rack,DataNode,NameNode)
-
Block (数据块):大文件会被分割成多个 Block 进行存储,Block 大小默认为 64MB。每 一个 Block 会在多个 DataNode 上存储多个副本,默认值为 3。
-
Rack (机架):一个 Block 的三个副本通常会保存在两个或者两个以上的机架中(当然 是机架中的服务器),这样做的目的是做防灾容错,因为发生一个机架掉电或者一个机 架的交换机故障的概率还