大数据处理技术考试总结(西柚2020)

一 客观题

(1)Hadoop基础,如:生态环境、历史等
(2)HDFS、YARN、HBase、MapReduce基本架构和原理
(3)HDFS命令、HBase命令
(4)实验操作
(5)常见故障排查(只包含集群安装、运行故障,不包含网络配置故障和虚拟机本身故障)
(6)HDFS Java API、HBase Java API、MapReduce编程

1 Hadoop基础

1.1 Hadoop历史

2004年,Google发表论文《MapReduce:超大集群的简单数据处理》

2006年Google发表论文《BigTable:结构化数据的分布式存储系统》

2006年,Yahoo!聘请Cutting将Nutch搜索引擎中的存储和处理部分抽象成为Hadoop,Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理,逐渐成为行业主流。

1.2 Hadoop生态系统

HDFS:分布式存储,为整个Hadoop系统提供数据存储功能
MapReduce:并行计算框架
HBase:构建在HDFS上的NoSQL数据库
Zookeeper:Hadoop组件管理端
Oozie:可扩展的Workflow系统,协调多个MapReduce作业执行
Pig:包含Pig Latin,对MapReduce的抽象
Hive:将结构化的数据文件映射为数据表,提供SQL语句,将SQL翻译为MapReduce语句进行查询

2 HDFS架构:

Hadoop三大基本组件:
HDFS——分布式文件系统,用于数据存储
YARN——统一资源管理和调度系统,用于管理集群的计算资源并根据计算框架的需求进行调度,支持包含MapReduce、Spark、Flink多种计算框架MRv2(Hadoop 2.x)之后的新特性
MapReduce——分布式计算框架,运行于YARN之上

HDFS/Hadoop Distributed File System
是Hadoop的分布式文件系统的实现。它的设计目标是存储海量的数据,并为分布在网络中的大量客户端提供数据访问。
HDFS是高容错性的,可以部署在低成本的硬件之上,HDFS提供高吞吐量地对应用程序数据访问。

2.1 HDFS特性

能够保存PB级的数据量,将数据散布在大量的计算机(节点)上,支持更大的文件
使用数据备份的方法解决文件存储的可靠性,如果集群中单个节点故障则启用备份
很好的与Map-Reduce集成,为减小计算时的数据交互,HDFS允许数据在本地计算

2.2 HDFS局限性

针对高速流式读取进行优化,查询性能低下(可利用Hive查询)
一次写入多次读取,不支持并发写入,并发读取性能很高
不支持文件修改
不支持缓存,每次读取文件须从硬盘上重新读取,当然对于大文件顺序读取性能影响不大
不适合存储小文件

2.3 HDFS架构

主从模式
整个Hadoop被构建在集群上,集群由各个节点(Node)构成
将集群中的节点分为NameNode(管理者)和DataNode(工作者)
文件被拆分为多个Block(块)放到不同的DataNode中,每个块默认64MB,同一个块会备份到多个DataNode中存储

2.4 Namenode

HDFS为主从架构,文件分块存储在DataNode,并由NameNode实现管理
使用NameNode存储元数据信息,保存文件名以及文件的块(Block)存储在哪些DataNode中
每个存活的DataNode定时向NameNode发送心跳信息,如果未收到DataNode的心跳,NameNode将认定其已失效,不再向其派发任何文件读请求;NameNode会将失效的DataNode中的块(Block)备份到其他存活的DataNode中

2.4.1 Namenode的元数据管理机制

整个系统的元数据都保存在NameNode中
内存元数据:meta data,用于元数据查询
硬盘元数据镜像文件:fsimage,持久化存储元数据
数据操作日志:edits,HDFS文件增删会造成元数据更改,将更改记录到edits,可运算出元数据

2.4.2 NameNode元数据管理过程

1、系统启动时,读取fsimage和edits至内存,形成内存元数据meta data
2、client向NameNode发起数据增删查请求
3、NameNode接收到请求后,在内存元数据中执行增删查操作,并向client返回操作结果
4、如果是增删操作,则同时记录数据操作日志edits
5、使用Secondary NameNode,在适当的时机将操作日志合并到fsimage中(CheckPoint过程)

2.5 HDFS数据写入机制

1.用户客户端请求Hadoop客户端,并执行文件上传
2.上传的文件写入到Hadoop客户端的临时目录中,每当写入的数据量越过块(block)边界时(hadoop 1.x缺省64mb,hadoop2.x缺省128mb),请求NameNode申请数据块
3.NameNode向Hadoop客户端返回block的位置
4.Hadoop客户端直接将block写入指定的DataNode
在这里插入图片描述

2.6 HDFS数据读取机制

1.用户客户端请求Hadoop客户端,请求返回指定文件
2.Hadoop客户端向NameNode发起读文件请求
3.NameNode查询meta data并返回文件对应的block位置
4.Hadoop客户端直接向DataNode请求block数据,获取到所有block后合并成文件
在这里插入图片描述

2.7 Hadoop配置文件

core-site.xml
Hadoop系统的通用关键属性
hdfs-site.xml
HDFS属性配置
mapred-site.xml
MapReduce计算框架的属性配置
yarn-site.xml
YARN基本属性
workers
定义所有DataNode地址

2.7.1 core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>	  <!--HDFS服务地址-->
        <value>hdfs://192.168.0.182:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>       <!--Hadoop临时目录-->
        <value>file:/home/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>     <!--缓冲区大小-->
        <value>131702</value>
    </property>
</configuration>

2.7.2 hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>   <!-- namenode的元数据目录-->
        <value>file:/home/hadoop/dfs/name</value><!--用逗号隔开设置多个存储目录-->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name            <!-- datanode的block数据目录-->
        <value>file:/home/hadoop/dfs/data</value><!--用逗号隔开设置多个存储目录-->
    </property>
    <property>
        <name>dfs.replication</name>	             <!--每个block保存的副本数量-->
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.0.182:9001</value>               <!--secondary namenode地址-->
    </property>
</configuration>

dfs.http.address
	HDFS的Web服务地址,显示HDFS服务状态和日志
	缺省值:IP地址:50070
dfs.webhdfs.enabled
	是否打开HDFS Web服务
	缺省值:true
dfs.block.size
	block大小,单位为字节,
	hadoop2.X缺省128Mb
dfs.datanode.du.reserved
	指定每个存储卷(硬盘分区)上不能用于HDFS文件存储的空间量,单位为%,缺省值:0
	最好设置一定的空闲空间(如:20,保留20%的剩余存储空间)
dfs.namenode.edits.dir
	单独为NameNode指定edits文件的存放目录,多个目录用逗号隔开
2.7.3 mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>                 <!--指示MR运行在YARN上-->
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.0.182:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.0.182:19888</value>
    </property>
</configuration>

2.7.4 yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.address</name>                                <!--RM的服务地址-->
        <value>192.168.0.211:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>      <!—NM通过该地址向RM汇报心 
                                                                                                                   跳、领取任务-->
        <value>192.168.0.211:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name >                  <!--YARN的Web管理地址-->
        <value>192.168.0.211:8088</value>
    </property>
    <property>
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值