<返回更多

20道大数据常见面试题

2019-08-08    
加入收藏
20道大数据常见面试题你需要知道(笔试题)

 

1.Hadoop分布式集群与伪分布式集群的区别

分布式集群需要多台电脑,,一台为奴隶主机,其他的为奴隶机用来存储数据。

伪分布式集群可以使用一台电脑搭建,也可以使用多台电脑,只需要在slaves中添加自己的主机名就可以了,其他的与分布式一样。

2.Hadoop分为三个核心部分,每个部分是什么,有什么功能?

三个核心:hdfs,mapreduce和yarn

Hadfs:分布式文件系统,mapreduce:分布式计算框架,yarn:资源调度器

功能:hdfs:由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。用于存储文件,通过目录树来定位文件

Mapreduce:采用“分而治之”的思想,来处理大规模的数据。将数据拆解成多个部分,并利用集群的多个节点同时进行数据处理,然后将各个节点得到的中间结果进行汇总,经过进一步的计算(该计算也是并行进行的),得到最终结果

3.Hadoop分布式集群,默认备份数为多少,每个数据块大小是多少?在哪个配置文件中可以修改备份数与每个数据块大小?

默认备份为3份,每块数据大小128M, 在hdfs-site.xml配置文件中可以修改备份数和数据块大小。

<property>
<name>dfs.block.size</name>
<value>128</value>
</property>
 <property>
 <name>dfs.replication</name>
 <value>3</value>
 </property>

4.Hadoop分布式集群中NN和DN、SN,指得是什么?他们分别有什么作用?

NN:Name Node 管理HDFS的命名空间,配置副本策略,管理数据块(Block)映射信息,处理客户端读写请求

DN:DataNode 存储实际的数据块,执行数据块的读/写操作

SN:SecondaryNameNode 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode ,在紧急情况下,可辅助恢复NameNode

5.Hadoop分布式集群中,如果NN挂掉,会出现什么情况?如果DN挂掉,会出现什么情况?如果SN挂掉,会出现什么情况?数据会丢失吗?

NN挂掉,数据丢失,分布式集群崩溃,DN挂掉,由于其他机器中存有备份,数据不会丢失,正常情况下对分布式集群不会出现大问题,SN挂掉,数据不会丢失,只是失去了对NameNode中映射的备份,为了防止意外(NN挂掉),需要尽快恢复SN。

20道大数据常见面试题你需要知道(笔试题)

 

6.Hadoop集群中yarn模式,是什么?在分布式计算中有什么作用?

Yarn模式是资源调度器,

yarn在管理者机器中是ResourceManager,负责 协调和管理整个集群(所有 NodeManager)的资源,响应用户提交的不同类型应用程序的 解析,调度,监控等工作。

在奴隶机中是NodeManager,是真正执行应用程序的容器的提供者, 监控应用程序的资源使用情况(CPU,内存硬盘,网络),并通过心跳向集群资源调度器 ResourceManager 进行汇报以更新自己的健康状态。同时其也会监督 Container 的生命周期 管理,监控每个 Container 的资源使用(内存、CPU 等)情况,追踪节点健康状况,管理日 志和不同应用程序用到的附属服务(auxiliary service)。

7.请描述对文本单词统计中mapreduce的过程。(文字和流程图描述)

过程分为4个阶段:spilt,map,shuffle,reduce

MapReduce过程

8、Split阶段(分片输入)

有两份文件,经过分片处理之后,会被分成三个分片(split1,split2,split3)。依次作为map阶段的输入。

经过分片处理之后,产生了三个分片,每个分片就是一行的三个单词,分别作为 map 阶段的输入。

9、Map阶段

Split 阶段的输出作为 Map 阶段的输入,一个分片对应一个 Map 任务。在 Map 阶段中,读取 value 值,将 value 值拆分为的形式。key 为 每个单词,value 为 1。

Map 阶段需要考虑 key 是什么,value 是什么。特别是 key ,他将作为后面 reduce 的依据。输出结果例如:<Deer, 1>,<River, 1>,<Bear, 1>,<Bear, 1>。

Map 阶段的输出会作为 Shuffle 阶段的输入。

10、Shuffle阶段

理解为从 Map 输出到 Reduce 输入的过程,而且涉及到网络传输。

将 Map 中 key 相同的都归置到一起,作为一个 Reduce 的输入

11、Reduce阶段

将 key 相同的数据进行累计。输出结果例如:<Beer, 3>。

12.Hadoop集群中请描述RM,NM是什么?有什么作用?

RM和NM都是属于hadoop yarn资源调度器:

RM:资源管理者:1、处理客户端请求2、启动或监控 MRAppMaster3、监控 NodeManager4、资源的分配与调度

NM:节点管理者:1、管理单个节点上的资源2、处理来自 ResourceManager 的命令3、处理来自 MRAppMaster 的命令

13.Hadoop集群中RM中分为几大模块,每个模块有什么作用?

RM分为:两个模块:ApplicationMaster (AM)和Containe。

ApplicationMaster (AM):

用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。

Container:

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container 表示的。 YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。

14.ETL是什么?kettle有什么作用?你常用使用的核心对象有哪些?分别有什么作用?

ETL是:用来描述将数据从来源端经过抽取、转换、加载至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

核心对象:BI和数据仓库

作用:BI:用来将企业中现有的数据(原始数据或商业数据或业务数据等)进行有效的整合,快速准确地提供报表并提出决策依据,帮助企业做出明智的业务经营决策。

数据仓库:它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。

15.hadoop集群中50070端口和8088端口,分别指的什么?

50070:奴隶主机的namenode;

8088:yarn资源调度器中的RM;里面有所有的进程完成情况

数据仓库hive中,启动hive服务器的命令有哪些?分别代表什么意思?内部表与外部表有啥区别?分区与分桶,指的是什么?

命令:hive --service metastore 启动元数据

hive:本地运行hive命令

hiveserver2:远程服务,开放默认端口 10000

内部表:内部表删除表时,数据也会被删除,

外部表:外部表在创建时需要加external,删除表时,表中的数据仍然会存储在hadoop中,不会丢失

分区:分文件夹:分目录,把一个大的数据集根据业务需要分割成小的数据集

分桶:分数据:分桶是将数据集分解成更容易管理的若干部分

20道大数据常见面试题你需要知道(笔试题)

 

16.什么是BI,什么是数据仓库?为什么需要用数据仓库hive?

BI:即商务智能,它是一套完整的解决方案,用来将企业中现有的数据(原始数据或商业数据或业务数据等)进行有效的整合,快速准确地提供报表并提出决策依据,帮助企业做出明智的业务经营决策。

数据仓库:是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。

为什么:hive为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。

17.数据仓库Hive跟hadoop集群,有什么关系?使用hive的好处是什么?

关系:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能,hadoop是用来存储数据的,hive是用来操作数据的。hive的数据文件存储在hdfs上,至于hdfs文件位置是由hadoop管理的。

好处:1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)

2)避免了去写MapReduce,减少开发人员的学习成本

3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合

4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高

5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

18.Hadoop集群中hadoop namenode –format ,可否在任意节点出,多次执行这条语句?如果执行多次语句后,会出现什么样的结果?如果在节点中执行语句,怎么修改?

不能,将hadoop格式化,将集群中所有的电脑name下的文件全部删除,重新启动hadoop

19.如何创建hive的外部表(包含分区与分桶)?在创建表时候和后期导入数据中,需要注意哪些问题?如何向hive的外部表中导入本地数据文件data.csv和外部hdfs上的/data.txt文件?

创建表的时候加入关键字:external,数据字段数量,类型要一致,分隔符要相同,导入数据时要不要覆盖,不覆盖的情况下不能用overwrite。

本地数据:load data local inpath '/home/user/data.csv' into table 导入的表名;

Hdfs:load data inpath '/home/user/data.txt' into table 导入的表名;

20.hive中集合数据类型什么?有什么作用?什么情况下,hive需要使用集合类型?

数据类型:包括6个基本类型:整数,布尔类型,浮点数,字符,时间类型。字节数组

2个集合数据类型: struct,map,array

基本数据类型表达不了的情况下使用集合类型

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>