大数据开发工程师面试题

news2024/12/26 0:36:13

一、选择题

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.xml hadoop-site.xml。这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在了。

10、那当下如何配置?

Hadoop现在拥有3个配置文件,①core-site.xml hdfs-site.xml mapred-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安装

  • 创建hadoop账户
  • setup.改IP
  • 安装java,并修改/etc/profile文件,配置java的环境变量
  • 修改Host文件域名
  • 安装SSH,配置无密钥通信
  • 解压Hadoop
  • 配置conf文件下hadoop-env.sh、core-site.sh、mapred-site.sh、hdfs-site.sh
  • 配置hadoop的环境变量
  • Hadoop namenode-format
  • start-all

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不会修改数据,所以无需担心数据的损坏
  • 删除表时,只删除表结构,无需删除表数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

typedef与define定义类型

#define _CRT_SECURE_NO_WARNINGS #define DataType2 int* #include<iostream> typedef int* DataType1; int main() {DataType1 a, b;DataType2 c, d;printf("%d %d %d %d", sizeof(a), sizeof(b), sizeof(c), sizeof(d));return 0; } 输出结果如何&#xf…

MySQL集群高可用架构之MMM

一、MMM概述 1.1 MMM 简介 MMM&#xff08;Master-Master replication manager for MvSQL&#xff0c;MySQL主主复制管理器&#xff09;是一套支持双主故障切换和双主日常管理的脚本程序。 MMM 使用 Perl 语言开发&#xff0c;主要用来监控和管理 MySQL Master-Master &#…

免费玩云上大数据--海汼部落实验室

玩大数据遇到的问题 大家好&#xff0c;这次分享一个免费的大数据部署工具&#xff0c;并非是给人家打广告&#xff0c;试过了真的爽。 学习大数据的人都知道&#xff0c;如果用VMware模拟Linux搭建大数据集群的话我们需要很高的内存和硬盘内存&#xff0c;随随便便跑一下mapre…

机器学习笔记:adaBoost

1 介绍 AdaBoost&#xff08;Adaptive Boosting&#xff09;是一种集成学习方法&#xff0c;它的目标是将多个弱分类器组合成一个强分类器 通过反复修改训练数据的权重&#xff0c;使得之前分类错误的样本在后续的分类器中得到更多的关注每一轮中&#xff0c;都会增加一个新的…

eCognition易康操作教程(一):如何利用eCognition易康软件进行影像分割之棋盘分割、四叉树分割、光谱差异分割

一、新建工程 使用eCognition新建工程ImageSegmentation&#xff0c;加载影像数据&#xff0c;并编辑图层名称&#xff0c;将Layer 1、Layer 2、Layer 3、Layer 4的 Layer Alias 分别改为 Blue、Green、Red、如图1-1&#xff0c;图1-2所示&#xff1a; 图 1-1 图 1-2 设置加载…

十三、直流电机驱动

十三、直流电机驱动 介绍直流电机调数 介绍 PWM PWM是脉冲宽度调制&#xff0c;在具有惯性的系统中&#xff0c;可以通过对一系列脉冲的宽度进行调制&#xff0c;等效的获取需要的模拟参量&#xff0c;常应用于电机控速、开关电源等领域。通过改变一个周期信号的占空比&#xf…

为什么做测试既要懂开发又要懂产品?这3点看完,你就懂了!

本篇讨论的是什么呢&#xff1f;何谓一个真正的测试&#xff1f; 纯粹是个人的理解&#xff0c;仅供参考。 ● 论一个真正的软件测试工程师 ● 自动化在项目中的应用 ● 性能专项在项目中的应用 半个产品、半个开发 有人觉得这个标题有点讽刺&#xff0c;真正的测试&…

关于RestTemplate postForObject方法请求 服务端Controller接受不到值的问题解决

本文适合有SSM框架基础和springboot开发基础的同学查阅 这里postForObject 方法有三个参数&#xff0c;没有使用四个参数的。 restTemplate.postForObject(String url, Object request, Class<T> responseType); 1.String url > 顾名思义 这个参数是请求的url路径。…

Spring面试题10:Spring的XMLBeanFactory怎么使用

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring的XMLBeanFactory怎么使用 XmlBeanFactory是Spring框架中的一个实现类,它是BeanFactory接口的一个具体实现。XmlBeanFactory的主要作用是通…

【C语言】指针经典笔试题(上)

C语言的一大重头戏就是指针。 对于指针有一些认识&#xff1a; 1.指针是存放变量的地址&#xff0c;一般说的指针和指针变量是一个概念。 2.地址的单位是字节&#xff0c;大小在不同编译器环境下有所不同&#xff0c;32位机器是4个字节&#xff0c;64位机器是8个字节。 3.数组名…

伪原创文章生成器软件的崛起-哪个伪原创文章生成器软件好?

在当今数字化的时代&#xff0c;内容创作已经成为了无处不在的需求。不论您是个人博主、企业家还是网站管理员&#xff0c;都会面临一个共同的挑战&#xff1a;如何在互联网上脱颖而出&#xff0c;吸引更多的读者和访客。 gpt批量图文改写润色软件-147SEO gpt批量图文改写润色…

IP地址欺骗的危害与后果

IP地址欺骗&#xff0c;也被称为IP地址伪装或IP地址欺诈&#xff0c;是一种网络攻击技术&#xff0c;旨在伪装或隐藏攻击者的真实IP地址。尽管这种技术可能有一些合法的用途&#xff0c;例如保护用户的隐私或绕过地理位置限制&#xff0c;但它也经常被恶意黑客用于不法行为。本…

Linux第一次作业

一&#xff0c;作业问题&#xff1a; 二&#xff0c;问题解答&#xff1a; 1. 2.文件管理命令练习 3.vi/vim练习 3.1 3.2 3.3 3.4

03【深度学习】YOLOV3-WIN11环境搭建(配置+训练)

一、深度学习&#xff1a;YOLOV3-WIN11环境搭建 本篇文字是【深度学习】YOLOV5-WIN11环境搭建&#xff08;配置训练)&#xff0c;首先介绍win11下 基于Anaconda、pytorch的YOLOV5深度学习环境搭建&#xff0c;环境配置顺序&#xff1a;显卡驱动 - CUDA - cudnn - Anaconda - py…

【Linux成长史】Linux编辑器-gcc/g++使用

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集 数据库专栏 初阶数据结构 &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如…

Tessy 5.0.4

Tessy 5.0.4 Linux 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

改写句子软件有哪些?改写句子软件排行榜

什么是改写句子软件?这些软件是基于自然语言处理技术的应用&#xff0c;它们可以接受一段文字&#xff0c;并将其重新表达成具有相同或类似意义的内容&#xff0c;但使用不同的词汇和结构。改写句子软件的出现&#xff0c;使得在不改变原始含义的情况下&#xff0c;能够更轻松…

MFC 如何调用wkhtmltopdf实现html转换pdf

一、wkhtmltopdf下载 1、wkhtmltopdf官网&#xff1a;https://wkhtmltopdf.org/ 2、我的资源里面下载&#xff1a;https://download.csdn.net/download/my_angle2016/88368461?spm1001.2014.3001.5503 二、wkhtmltopdf安装 1、双击wkhtmltox-0.12.6-1.msvc2015-win32.exe&…

人工智能的前世今生与未来

人工智能的前世今生与未来 一、 什么是人工智能二、人工智能的前世三、人工智能的今生四、人工智能的未来 一、 什么是人工智能 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是指一种模拟人类智能行为的科学与技术。 人工智能通过计算机系统进…

华为云云耀云服务器L实例评测|netdata的部署与应用

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 看这里 前言何为netdata安装 前言 前两天&#xff0c;给大家介绍了下关于使用华为云云耀云服务器L实例做了几个案例应用&#xff0c;分别为&#xff1a; 华为云云耀云服务器L实例评测|一个…