大数据面试题

Hadoop

1,Hadoop集群中都需要启动那些进程,它们的作用分别是什么?

NameNode:在hadoop的主服务器, 在内存中保存整个文件系统的名称空间和文件数据块的地址映射.    整个HDFS可存储的文件数量受限于NameNode的内存大小.  NameNode 负责文件元数据的操作.

SecondaryNameNode: 不是NameNode的冗余守护进程,  而是提供周期检查和清理任务, 帮助NameNode合并editlog 减少NameNoded的启动时间

DataNode: 提供真实的存储服务, 以数据块的形式存储HDFS文件, DataNode 响应HDFS客户端读写请求

2,Secondary NameNode不能恢复NameNode的全部数据,如何保证NameNode数据存储安全?

一个NameNode存在单点故障, 需要配置双NameNode,必须保证这两个NameNode的元数据信息保持一致.

双NameNode元信息同步采用""共享存储" 的方式, 每次写文件时, 需要将日志同步写入共享存储, 这个步骤成功才认定为写文件成功.   便于进行主备切换.

监控NameNode采用zookeeper 两个NameNode 节点的状态信息存储在zookeeper中, 其中一个down机, 会强制关闭 NameNode active节点. 将备用NameNode设置为active.

共享存储基于paxos算法(分布式系统一致性与共识算法): 在允许宕机故障的异步系统中, 2F+1个节点的系统最多允许F个节点同时出现故障,

paxos算法的大致思想:一个或多个提议进程可以发起提案, 系统中多数派同时认可该提案,即达成一致, 最多只针对一个确定的提案达成一致. 

3, 在NameNode HA中,会出现脑裂问题吗? 怎么解决脑裂?

针对脑裂问题,社区的主要办法是进行NameNode的隔离,即把旧的NameNode Active隔离起来,不对外提供服务.

在进行隔离(fencing)操作的时候 会执行以下操作:

1.常识将旧的 Active NameNode 的RPC接口方法, 转换为Standby状态

2. 如果远程RPC接口方法调用失败,hadoop采取2两种隔离措施是:

(1)sshfence 通过ssh登录到目标机器上, 执行命令fuser将对应的进程杀死,

(2)shellfence 执行一个用户自定义的shell脚本将对应进程杀死.

3, Hadoop中小文件过多会有什么危害?如何避免?

Hadoop上大量HDFS元数据信息都存储在NameNode内存中, 过多的小文件会导致NameNode的内存不足. 每个小文件占用一个block块, 在安装过程中会指定block块的大小, 因此浪费block的存储空间. 

因此小文件问题使用hadoop的CombineFileputFormat<K,V>实现小文件的合并.

4,简述mapreduce的工作原理?

mapreduce分为四个过程: split map Shuffle reduce

split: 将大文件切割成几个小文件,  即分片

Map: split的输出作为map的输入, 一个分片对应一个map任务. 在map阶段将value值拆分为<key, value> 的形式.

shuffer : map的输出作为reduce的输入过程, 将map中key相同的都归纳在一起, 作为一个reduce的输入 

reduce: 将key相同的数据进行累计.

Yarn

5, 为什么会产生yarn?它解决了什么问题?有什么优势?

yarn最主要的功能是用户运行的程序与yarn框架的解耦 

yarn 上可以运行各种类型的分布式运算程序. 如 storm程序, spark程序.

6,yarn集群的架构和工作原理是什么?

yarn将mapreduce中的JobTracker拆分为两个独立的服务: ResourceManager和ApplicationMaster 

yarn主要由 ResourceManager Nodemanager ApplicationMaster 和 Container等几个部分组成

ResourceManager: 全局资源管理器. 负责整个系统资源的分配与管理, 由两部分组成: 调度器和应用程序管理器.   调度器:将系统中的资源分配给应用程序,保证系统资源被应用程序充分利用.

应用管理器: 负责管理系统中所有的应用程序,包括应用程序的提交,与调度器协商资源 以及监控应用程序状态.

ApplicatoinMaster: 用户提交一个应用程序对应一个ApplicationMaster,  ApplicationMaster的主要功能是:与ResourceManager的调度器协商获得资源, 资源以container的形式表现. 

NodeManager: 节点上的资源和任务管理器, 定期向ResourceManager汇报节点上的资源使用情况以及汇报container的运行状态.

Container: Container是yarn的资源抽象, 封装了各种资源, 一个应用程序分配一个Container, 一个应用程序只能使用对应container中描述的资源, Container是一个动态资源划分单位,能更充分的使用资源.

Hive

Hive内部表和外部表的区别?

external修饰的为外部表 没有被external修饰的是内部表

1, 内部表数据由hive自身管理,   外部表数据由HDFS管理

2, 删除内部表会直接删除元数据和存储数据,    删除外部表仅仅是删除元数据 HDFS上的文件并不会被删除.

为什么需要对数据仓库进行分层?

用空间换时间, 通过大量的预处理来提升应用系统的响应效率, 因此数据仓库会存在大量的冗余数据.

如果不分层, 如果业务采集系统规则发生变化, 将会影响整个数据清洗过程. 工作量巨大.

通过数据分层可以简化数据清洗的过程,每一层的处理逻辑相对简单和容易理解. 比较容易保证每一步的正确性, 如果数据发生错误,也仅仅需要调整局部的某个步骤即可.

Kafka

为什么要使用kafka?

1, 缓冲和削峰: 上游数据有时突发流量,下游可能扛不住. 或者下游没有足够多的机器保证冗余, kafka可以在中间起到一个缓冲的作用. 把消息暂存在kafka中, 下游服务有足够的时间慢慢处理.

2, 解耦和扩展性: 项目开始的时候, 需求并不确定, 消息队列可以作为一个阶层, 解耦重要的业务流程.

3, 冗余: 可以采用一对多的方式, 一个生产者发布消息, 可以被多个订阅topic的服务消费到, 提供服务给多个无关联的业务使用.

4,健壮性: 消息队列可以堆积请求, 所以即使消费端业务暂时宕机,也不会影响主要业务正常运行.

5. 异步通信: 用户有时并需要立即处理消息, 此时将消息存入队列, 等用户需要的时候再去处理它们

 

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

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

相关文章

ac7260网卡不能连5g

之前路由器是双频&#xff0c;最近为了连物联网一堆&#xff0c;把双频拆成两个wifi 结果电脑上装的pdd网卡就罢工了&#xff0c;连4g可以&#xff0c;但是连5g网络就不行&#xff0c;连上却没网&#xff0c;导致网盘下东西慢。刚开始以为是tplink的易展问题&#xff0c;结果看…

CSS中如何实现元素的旋转和缩放效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 元素的旋转和缩放效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏…

element ui 表格组件与分页组件的二次封装

目录 效果图 组件封装 parseTime函数 debounce 函数 页面使用 【扩展】vue 函数式组件 函数式组件特点&#xff1a; 函数式组件的优点&#xff1a; 【扩展】vue中的render函数 一、初步认识render函数 二、为什么使用render函数 三、render函数的解析 【扩展】添加…

HDFS文件删除后,HIVE元数据还存在的问题

一.背景 手动在hdfs上删除了一个表的分区数据(inc_day2023-08-30)&#xff0c;当查询这个表这个分区的数据时报错文件不存在 二.原因 即HDFS数据删除了&#xff0c;但是hive metastore元数据却没有更新&#xff0c;使用show partitions tablename 发现该分区还存在 三.解决办法…

【 Tkinter界面-练习04】 画板作画详细揭示

一、说明 对画布的掌握分三个部分&#xff0c;将图形paint到画布、动画move、鼠标画&#xff1b;本篇将侧重于鼠标画的功能&#xff0c;提起鼠标画实现&#xff0c;将涉及一系列组合操作才能完成&#xff0c;这里将一一加以介绍。 Canvas 小部件具有大量功能&#xff0c;我们不…

C++提高篇:深入理解纯虚函数和抽象类

在C中&#xff0c;纯虚函数和抽象类是面向对象编程中重要的概念。本文将会深入探讨这两个概念的含义、如何定义和使用它们&#xff0c;以及它们在实际开发中的应用。 一、什么是纯虚函数&#xff1f; 在C中&#xff0c;纯虚函数是指在基类中声明但没有实现的虚函数。纯虚函数的…

2023全国大学生数学建模ABCDE选题建议,思路模型,小白要怎么选?难度怎么样

首先最重要的&#xff0c;难度C<B<A&#xff0c;D、E题推荐选E题 大家可以查看我们的视频讲解&#xff0c;在这里&#xff1a;【2023全国大学生数学建模竞赛选题建议&#xff0c;难度分析&#xff0c;小白应该怎么选】 https://b23.tv/S6O26uc 选题建议视频播放​b23.t…

设备管理系统有什么功能?它有什么用?

设备管理系统已成为现代化大规模研究所&#xff0c;信息化管理体系建设中最为关键的要素。随着工业设备的机械化、自动化、大型化、高速化以及复杂化等因素不断叠加&#xff0c;设备设施对于工业生产的作用和影响越来越大&#xff0c;其各项制度和流程也涉及面广、内容繁杂。  …

HTML <title> 标签

实例 一个简单的 HTML 文档,带有尽可能少的必需的标签: <html><head><title>XHTML Tag Reference</title></head><body>The content of the document......</body></html>定义和用法 <title> 元素可定义文档的标题…

私有化部署即时通讯平台,完美替代飞书和钉钉的SaaS系统

在当今快速发展的数字化时代&#xff0c;企业对于安全、灵活、可定制的即时通讯平台需求不断增长。作为一家领先的品牌&#xff0c;WorkPlus专注于提供私有化部署的即时通讯平台&#xff0c;完美替代飞书和钉钉的SaaS系统。本文将重点介绍WorkPlus如何通过创新的解决方案&#…

系统学习Linux-PXE无人值守装机(附改密)

目录 pxe实现系统自动安装pxe工作原理 大致的工作过程如下&#xff1a; PXE的组件&#xff1a; 一、配置vsftpd 二、配置tftp 三、准备pxelinx.0文件、引导文件、内核文件 四、配置dhcp 配置ip 配置dhcp 五、创建default文件 六、新建测试主机用来测试装机效果 七、…

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析详解+思路+Python代码

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析 十分激动啊啊啊题目终于出来了&#xff01;&#xff01;官网6点就进去了结果直接卡死现在才拿到题目&#xff0c;我是打算A-E题全部做一遍。简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与…

STC单片机+EC11编码器实现调节PWM输出占空比

STC单片机+EC11编码器实现调节PWM输出占空比 📌相关篇《stc单片机外部中断+EC11编码器实现计数功能》 📍《STC15单片机特有的PWM寄存器和普通定时器实现PWM输出》 🎬效果演示: 🌼 通过逻辑分析仪获取P11引脚上的信号波形,查看其对应输出的占空比。 ✨本例程基于上面两…

ChatGPT驱动下,网站AI客服该如何进步和创新

在ChatGPT这个AI智能的驱动下&#xff0c;网站AI客服在进步和创新方面有很多潜力。由于GPT模型的强大语言处理能力和智能对话技巧&#xff0c;使得网站AI客服能够更准确和流畅地与用户交互。looklook今天总结了一些网站AI客服智能的进步和创新方向&#xff0c;以供大家参考。 网…

学习如何使用Selenium等工具处理动态生成的网页内容及语法代码

使用Selenium处理动态生成的网页内容和语法代码可以通过以下步骤进行&#xff1a; 安装Selenium库&#xff1a;使用pip命令安装Selenium库&#xff0c;可以在命令行中运行如下命令&#xff1a; pip install selenium 下载WebDriver&#xff1a;Selenium需要与特定的浏览器进行交…

复制粘贴是怎么实现的

在上面的代码中&#xff0c;command 和 select 是自定义的函数。它们的作用如下&#xff1a; 实现复制粘贴的思路&#xff1a; 创建一个 textarea 标签将 textarea 移出可视区域给这个 textarea 赋值将这个 textarea 标签添加到页面中调用 textarea 的 select 方法调用 docum…

(c++)类和对象 上篇

目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步…

肖sir __linux命令拓展__05

linux命令拓展 1.追加内容到某文件 echo “i like learn linux” >>quzhi.txt 2.删除指定的空目录&#xff1a; rmdir 目录名 rmdir -p 目录名 &#xff08;删除指定的空目录及其内子空目录&#xff09; 3.显示zip包信息 zipinfo 压缩包名 &#xff08;显示压缩包内的文…

外滩大会今日开幕 近20位“两院”院士、诺贝尔奖和图灵奖得主齐聚

2023 Inclusion外滩大会9月7日在上海黄浦世博园正式开幕。这场以“科技创造可持续未来”为主题的大会为期三天&#xff0c;近20位“两院”院士、诺贝尔奖和图灵奖得主&#xff0c;全球超500位有影响力的科技领军企业和专家学者&#xff0c;将在此带来一场科技、人文和产业的思想…

Linux下go环境安装、环境配置并执行第一个go程序

一、安装 1.Golang对Linux的内核版本要求 GO对Linux内核版本最低要求是 2.6.23&#xff0c;对应要求操作系统版本是&#xff1a; RHEL 6.0CentOS 6.0即&#xff0c;不支持 (RHEL 和 CentOS) 的 (4.x or 5.x)。2.下载golang的代码版本 Golang的官网下载地址&#xff1a;https:…