大数据开发工程师面试题

一、选择题

1、哪个程序负责HDFS数据存储?

Datanode

2、HDFS中的block默认保存几份?

默认3份

3、哪个程序通常与NameNode在一个节点启动?

Jobtracker

4、HDFS默认Block Size是多少?

64MB

5、什么通常是集群的最主要瓶颈

磁盘IO

6、关于SecondaryNameNode?

它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间

7、什么可以作为集群的管理?

Puppet、Pdsh、Zookeeper

8、 Client端上传文件时候的流程

Client想NameNode发起文件写入的请求。NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。(NameNode->Client->分块->DataNode)

9、Hadoop的核心配置是什么?

Hadoop的核心配置通过两个xml文件来完成:①hadoop-default.xmlhadoop-site.xml。这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在了。

10、那当下如何配置?

Hadoop现在拥有3个配置文件,①core-site.xmlhdfs-site.xmlmapred-site.xml。这些文件都保存在conf/子目录下。

11、jps命令的用处?

这个命令可以检查Namenode、Datanode、Task Tracker、Job Tracker是否正常工作。

12、mapreduce的原理?

Map阶段:

  • 分割:首先,输入数据集被分割称多个小块,每个小块都包含一部分数据记录。这些小块被称为分片或输入分片。
  • **映射:**在这个阶段,MapReduce任务的用户指定一个映射函数(Map函数),该函数将输入数据集的每个记录转换为一组键-值对。这些键值对的生成时独立且并行进行的,每个Map任务对应一个输入分片,因此Map阶段具有高度的并行性。Map函数的输出键值对通常与问题的特性有关。
  • **分组与排序:**生成的键值对将被分组,以便相同键的值能够被传递到同一个Reduce任务中,此外,这些键值对还会被按键进行排序,以便Reduce阶段更容易进行处理。

Reduce阶段:

  • 归约:在Reduce阶段,用户指定一个归约函数(reduce函数),该函数接收相同键的一组键值对,并将它们合并为一个或多个输出结果。每个Reduce任务处理一个唯一的键组,并且Reduce任务之间也可以并行运行。
  • 结果输出:最后,Reduce任务的输出结果被写入到持久化存储(如分布式文件系统)中,以供进一步分析和使用。

13、HDFS写流程

  • client链接namenode存数据
  • namenode记录一条数据位置信息(元数据),告诉client存哪儿。
  • client用hdfs的api将数据(默认是64M)存储到datanode上。
  • datanode将数据水平备份,并且备份完将反馈client。
  • client通知namenode存储块完毕。
  • namenode将元数据同步到内存中。
  • 另一块循环上面的过程。

流程

  • client链接namenode,查看元数据,找到数据的存储位置。
  • client通过hdfs的api并发读取数据。
  • 关闭连接。

14、hadoop的Combiner的作用?

combiner是reduce的实现,在map端运行计算任务,减少map端的输出数据。

作用就是优化,但combiner 的使用场景是 mapreduce 的 map 和 reduce 输入输出一样。

15、简述hadoop安装

16、请列出hadoop进程名

  • namenode管理集群,并记录datanode文件信息
  • secondname:可以做冷备,对一定范围内数据做快照性备份
  • datanode:存储数据
  • Jobtracker:管理任务,并将任务分配给tasktracker
  • Tasktracker:任务执行方

17、写出下列命令

  • 杀死一个job

  • 删除hdfs上的/tmp/aaa

  • 加一个新的存储节点和删除一个计算节点需要的新集群状态命令

    hadoop job -list #拿到job-id
    hadoop job -kill job-id
    Hadoop fs -rmr/tmp/aaa
    #加新节点时:
    Hadoop-daemon.sh start datanode
    Hadoop-daemon.sh start tasktracker

    #删除时
    hadoop mradmin -refreshnodes
    hadoop dfsadmin -refreshnodes

18、简述hadoop的调度器

  • FIFO schedular:默认,先进先出原则
  • Capacity schedular:计算能力调度器、选择占用最小、优先级高的先执行,依次类推。
  • Fair schedular:公平调度,所有的job具有相同的资源

19、 combiner 和 partition 的作用

  • combiner是reduce的实现,在map端运行计算任务,减少Map端的输出数据。作用是优化,但ombiner的使用场景是map reduce的map输出结果和reduce输入输出一样。
  • partition的默认实现是Hashpartition,是map端将数据按照reduce个数取余,进行分区,不同的reduce来copy自己的数据。partion的作用是将数据分到不同的reduce进行计算,加快计算效果。

20、 hive内部表和外部表的区别

  • 内部表:加载数据到hive所在的hdfs目录,删除时,元数据和数据文件都删除。
  • 外部表:不加载数据到hive所在的hdfs目录,删除时,只删除表的结构

21、Hbase的rowkey怎么创建好?列族怎么创建比较好?

  • hbase存储时,数据按照row key的字典序(byte order)排序存储,设计key时,要充分排序
  • 存储这个特性,将经常一起读取的行存储放到一起,(位置相关性)一个列族在数据底层是一个文件,所以经常一起查询的列放到一个列族中,列族尽量少,减少文件的寻址时间。

22、 用mapreduce怎么处理数据倾斜问题?

**数据倾斜:**map/reduce程序执行时,reduce节点大部分执行完毕,但是又一个或几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时时百倍或千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,称为数据倾斜。

解决: 用hadoop程序进行数据关联时,常碰到数据倾斜的情况,这里提供一种解决方法:自己实现partition类,用key和value相加取hash值。

23、hadoop框架中如何优化

  • 从应用程序角度进行优化。由于mapreduce是迭代逐行解析数据文件的,怎样在迭代的情况下,编写高效率的应用程序,是一种优化思路。
  • 对hadoop参数进行调优,当前hadoop系统有190多个配置参数,怎样调整这些参数,使hadoop作业运行尽可能的快,也是一种优化思路。
  • 从系统实现角度进行优化,这种优化难度是最大的,它是从hadoop实现机制角度,发现当前hadoop设计和实现上的缺点,然后进行源码级的修改。这方法虽然难度大,但往往效果明显。
  • linux内核参数调整

24、我们开发job时,是否可以去掉reduce阶段

可以,设置reduce数为0就好。

25、datanode在什么情况下不会备份

datanode在强制关闭或者非正常断电不会备份。

26、HDFS的体系结构

HDFS由namenode, secondraynamenode, datanode组成。为n+1模式。

  • namenode负责管理datanode和记录元数据
  • secondraynamenode负责合并日志
  • datanode负责存储数据

27、三个datanode中有一个datanode出现错误会怎么样?

这个datanode的数据会在其他的datanode上重新做备份。

28、描述一下hadoop中,有哪些地方使用了缓存机制,作用分别是什么?

在mapreduce提交job的获取id之后,会将所有文件存储到分布式缓存上,这样文件可以被所有的mapreduce共享。

29、如何确定Hadoop集群的健康状态

通过页面监控,脚本控制

30、生产环境中为什么建议使用外部表?

  • 因为外部表不会加载数据到hive,减少数据传输、数据还能共享
  • hive不会修改数据,所以无需担心数据的损坏
  • 删除表时,只删除表结构,无需删除表数据。
相关推荐
咖啡屋和酒吧2 小时前
“隐性肩颈紧张”正在透支精力|没有酸痛,不代表肩颈处于健康状态
大数据·精选
港股研究社2 小时前
专注履约底座,顺丰同城在即时零售效率时代提升增长动能
大数据·人工智能
AI_yangxi4 小时前
短视频矩阵系统选哪家
大数据·人工智能·矩阵
lupai13 小时前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
大模型丫丫15 小时前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器
大大大大晴天15 小时前
每天认识一个组件:SQL网关Apache Kyuubi
大数据
2601_9622184716 小时前
万象生鲜系统冷链物联网接入技术实现生鲜企业温控管理数字化
大数据·运维·微服务·云原生·架构
2601_9620748117 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
大数据·数据库·mysql
2601_9620738117 小时前
大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL
大数据·数据库·mysql
不会写代码的女程序猿17 小时前
养生馆采购 AI 四诊仪,5000 元预算怎么选?
大数据·人工智能·科技·ai·健康医疗