Hadoop阶段性复习
1.什么是“大数据”?
·通过传统的计算机在可接受的范围内不能捕获、管理和处理的数据集合
2.海量数据产生的原因?
- 少量企业应用产生的数据
- 大量人产生的数据
- 巨量机器产生的数据
3.大数据的“四 V ”特征:
海量化(Volume)、多样化(Variety)、快速化(Velocity)、高价值(Value)
4.大数据核心技术?
分布式存储(HDFS)、分布式处理(MapReduce)
5.什么是Hadoop概述,它有哪些特性?
是Apache软件基金会旗下的一个开源分布式计算平台。基于Java语言开发,具有很好的跨平台特性
特性:
- 高可靠性:冗余副本
- 高效性:集群运算
- 高可扩展性:不断增加节点到集群
- 高容错性:多副本机制,保证正常运行
- 成本低:普通廉价机都行
- 运行在Linux平台上
- 支持多种编程语言
6.HDFS的体系结构?以及结构中的组成部分的作用?
HDFS集群有一个NameNode和多个DataNode组成。
- NameNode:名称节点,负责协调集群中的数据存储
- DataNode:数据节点,存储被拆分的数据块;执行数据块的读写操作
- SeconDaryNameNode:帮助NameNode收集文件系统运行的状态信息
- Client:客户端,文件切分;与NameNode交互,获取文件的位置信息; 与DataNode交互,读取或者写入数据;提供一些命令来管理HDFS;通过一些命令来访问HDFS
7.HDFS中存储文件的基本单位是什么?它是怎么样来完成大文件和海量数据存储的?它的优势是什么?
- 基本单位:块(默认64MB)
- 把文件分块,然后分布存储到多个计算机节点上,来完成大文件和海量数据存储
- 优势:(1)支持大规模文件存储:一个大规模文件可以被分拆成若干个文件块,因此,一个文件的大小不会受到单个节点的存储容量的限制
(2)简化系统设计:大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;
(3)适合数据备份
8.HDFS的冗余存储机制,策略,优缺点?
- 机制:数据块多副本存储:通常一个数据块会创建多个副本(默认为三个),会被分布存储到不同的数据节点
- 策略:
- 第一个副本:若由某个数据节点创建文件块副本,则就放在本地;如果是集群外提交副本,则随机挑选一台磁盘不太满、CPU不太忙的节点
- 第二个副本:放置在与第一个副本不同的机架的节点上(鸡蛋不放在同一篮子里)
- 第三个副本:与第一个副本相同机架的其他节点上(同机架节点间传输速度快)
- 更多副本:随机节点存储
- 冗余存储优点:
(1)加快数据传输速度
(2)很容易检查数据错误
(3)保证数据可靠性
(4)提高了系统的容错性(某个节点发生故障,还有其他节点)和可用性(提高数据使用效率,即哪个节点最空闲就用哪个) - 冗余存储缺点:可能出现数据不同步问题。
- HDFS优点:兼容廉价的硬件设备;流数据读写;大数据集;跨平台兼容性
- HDFS缺点:不支持多用户写入和任意修改文件;不适合低延迟数据访问;无法高效存储大量小文件
9. HDFS的名称节点具体是怎么运作的?其中的重要数据结构以及其分别的作用?
-
流程:
(1)首先使用Shell命令启动名称节点,将FsImage文件中的内容从磁盘加载到内存中。(2)然后,逐一执行EditLog日志文件中记载的各项操作,再将这些操作产生的结果,逐一添加和更新到FsImage文件中。(3)这样会得到一个更新完成的新版的FsImage文件,旧版的FsImage会删掉,同时,创建一个空的EditLog文件,旧的日志文件也删掉 -
结构:
-
作用:
FsImage:元数据镜像文件(保存文件系统的目录树)
EditLog:元数据操作日志(针对目录树的修改操作,即记录对数据进行的诸如创建、删除、重命名等操作)
10. 第二名称节点的作用以及原理?
- 作用:保存名称节点中对HDFS 元数据信息的备份,提高系统安全性能作用;防止Editlog文件过大,从而降低效率
- 原理:(1) SecondaryNameNode将下载下来的FsImage载入到内存中,然后一条一条地执行EditLog文件中的各项更新操作,从而得到一个新的FsImage;(2)Namenode将从SecondaryNameNode接收到的新的FsImage替换旧的FsImage文件,同时将Edit.New(更新时,新操作会写在这个建的新文件上)替换EditLog文件,通过这个过程EditLog就变小了
11.HDFS的数据错误与恢复:HDFS中的数据错误有哪几种?在HDFS中分别是用什么方法来解决和避免的?
- HDFS中的数据错误有三种:
- 名称节点出错
- 数据节点出错
- 数据出错
- 名称节点出错:HDFS设置了备份机制,把这些核心文件同步复制到备份服务器SecondaryNameNode上。当名称节点出错时,就可以根据备份服务器SecondaryNameNode中的FsImage和EditLog数据进行恢复
- 数据节点出错:名称节点会定期检查由于一些数据节点的不可用,导致一些数据块的副本数量小于冗余量的情况,一旦发现某个数据块的副本数量小于冗余因子,就会启动数据冗余复制,为它生成新的副本
- 数据出错:客户端在读取到数据后,会采用Md5和Sha1对数据块进行校验,以确定读取到正确数据
12. Linux基本命令
操作 | 命令 |
---|---|
给予Root权限命令 | sudo |
切换目录 | cd |
查看文件与目录 | ls |
新建新目录 | mkdir |
删除空的目录 | rmdir |
复制文件或目录 | cp |
移动文件与目录 | mv |
查看文件内容 | cat |
修改文件所有者权限 | chown |
压缩命令 | tar |