大数据常见面试题Hadoop篇(3)

news2024/11/26 3:25:13

前几篇地址:

大数据常见面试题 Hadoop篇(1)_后季暖的博客-CSDN博客

大数据常见面试题 Hadoop篇(2)_后季暖的博客-CSDN博客

目录

36.HDFS文件能否直接删除或则修改?

37.谈谈hdfs中的block、package、chunk?

38.HDFS能否多线程写?

39.读写过程,数据完整性如何保持?

40.文件授权期限分为几个等级?

41.谈谈hdfs中的Checksum?

42.谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?

43、什么样的计算不能用mr来提速?

44.hadoop主要的端口有哪些?

45.请简述Hadoop常用的配置文件及Hadoop集群搭建过程


36.HDFS文件能否直接删除或则修改?

HDFS上的文件不支持直接修改,是因为HDFS只支持一次写入,如果想要修改HDFS上的文件则需要将HDFS的文件下载到本地(hdfs dfs -get hdfs路径 本地路径),从本地进行修改,然后再上传到HDFS上(hdfs dfs -put 本地路径 hdfs路径)

但是HDFS支持通过appendToFile追加:hdfs dfs -appendToFile 追加内容的文件 HDFS中要被追加的文件


37.谈谈hdfs中的block、package、chunk?

1、block
这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB,当然你可以去改,不顾不推荐。因为块太小:寻址时间占比过高。块太大:Map任务数太少,作业执行速度变慢。它是最大的一个单位。
2、package
packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。
3、chunk
chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk需要带有4Byte的校验位。所以实际每个chunk写入packet的大小为516Byte。
 

38.HDFS能否多线程写?

不能
hdfs的不能并发写指的是同位置同名文件只能有一个writer,否则会使得所有的上传请求失败。
不同位置或者不同名的文件可以同时上传。

39.读写过程,数据完整性如何保持?

通过校验和。因为每个chunk中都有一个校验位,一个个chunk构成packet,一个个packet最终形成block,故可在block上求校验和。

HDFS 的client端即实现了对 HDFS 文件内容的校验和 (checksum) 检查。当客户端创建一个新的HDFS文件时候,分块后会计算这个文件每个数据块的校验和,此校验和会以一个隐藏文件形式保存在同一个 HDFS 命名空间下。当client端从HDFS中读取文件内容后,它会检查分块时候计算出的校验和(隐藏文件里)和读取到的文件块中校验和是否匹配,如果不匹配,客户端可以选择从其他 Datanode 获取该数据块的副本。

40.文件授权期限分为几个等级?

文件授权期限分为软限制期硬限制期两个等级。当处于软限制期内时,写文件的客户端独占对文件的访问权。当软限制过期后,如果客户端无法关闭文件,或没有释放对文件的授权,其他客户端即可以预定获取授权。当硬限制期过期后(一小时左右),如果此时客户端还没有更新(释放)授权,HDFS会认为原客户端已经退出,并自动终止文件的写行为,收回文件控制授权。文件的写控制授权并不会阻止其他客户端对文件进行读操作。因此一个文件可以有多个并行的客户端对其进行读取。

41.谈谈hdfs中的Checksum?

在一个集群的数千个节点里,节点失效(往往是因为存储故障造成的)每天都有可能发生。DataNode中所包含的文件块备份可能会因为内存、磁盘或者网络的错误而造成损坏。为了避免这种错误的形成,HDFS会为其文件的每个数据块生成并存储一份Checksum(总和检查)。Checksum主要供HDFS客户端在读取文件时检查客户端,DataNode以及网络等几个方面可能造成的数据块损坏。当客户端开始建立HDFS文件时,会检查文件的每个数据块的checksum序列,并将其与数据一起发送给DataNode。 DataNode则将checksum存放在文件的元数据文件里,与数据块的具体数据分开存放。当HDFS读取文件时,文件的每个块数据和checksum均被发送到客户端。客户端会即时计算出接受的块数据的checksum, 并将其与接受到的checksum进行匹配。如果不匹配,客户端会通知NameNode,表明接受到的数据块已经损坏,并尝试从其他的DataNode节点获取所需的数据块。

42.谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?

1)序列化和反序列化
  (1)序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。
  (2)反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。
  (3)Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。
2)自定义bean对象要想序列化传输步骤及注意事项:
  (1)必须实现Writable接口
  (2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造
  (3)重写序列化方法
  (4)重写反序列化方法
  (5)注意反序列化的顺序和序列化的顺序完全一致
  (6)要想把结果显示在文件中,需要重写toString(),且用"\t"分开,方便后续用
  (7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序

43、什么样的计算不能用mr来提速?

 1)数据量很小。
  2)繁杂的小文件。
  3)索引是更好的存取机制的时候。
  4)事务处理。
  5)只有一台机器的时候。

44.hadoop主要的端口有哪些?

  • 默认端口 设置位置
  • 9000 namenode
  • 8020 namenode
  • 8021 JT RPC
  • 50030 mapred.job.tracker.http.address JobTracker administrative web GUI
  • 50070 dfs.http.address NameNode administrative web GUI
  • 50010 dfs.datanode.address DataNode control port
  • 50020 dfs.datanode.ipc.address DataNode IPC port, used for block transfer
  • 50060 mapred.task.tracker.http.address Per TaskTracker web interface
  • 50075 dfs.datanode.http.address Per DataNode web interface
  • 50090 dfs.secondary.http.address Per secondary NameNode web interface

 

45.请简述Hadoop常用的配置文件及Hadoop集群搭建过程

1、配置文件:

Hadoop2.x的配置文件有core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

Hadoop3.x的配置文件有core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers

2、简单的集群搭建过程:

JDK安装

配置SSH免密登录

配置hadoop核心文件

格式化namenode
 

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

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

相关文章

java毕业设计——基于java+MMAS的蚁群算法路由选择可视化动态模拟设计与实现(毕业论文+程序源码)——蚁群算法路由选择可视化动态模拟

基于javaMMAS的蚁群算法路由选择可视化动态模拟设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于javaMMAS的蚁群算法路由选择可视化动态模拟设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录&#…

java项目-第143期ssm母婴用品网站_java毕业设计_计算机毕业设计

java项目-第143期ssm母婴用品网站_java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm母婴用品网站》 该项目分为2个角色,管理员和用户。 用户可以浏览前台,包含功能有: 首页、商品信息、论坛信息、新闻资讯 、留言反馈、购物…

Chapter3 Pytorch与机器学习有关函数(二)

目录 3.4 tensor中的填充操作 3.4.1 tensor.full 3.5 pytorch中模型的保存/加载/并行化 3.6 导数、方向导数、偏导数 3.6.1 重要概念 3.6.1.1 概念 3.6.1 如何计算梯度 3.6.2 torch.autograd.Function 3.7 pytorch与nn库 3.7.1 nn库介绍(介绍、在后续会详…

干货|爱奇艺短视频多模态分类技术解析

简介 近年来,短视频领域一直广受关注,且发展迅速。每天有大量UGC短视频被生产、分发和消费,为生产系统带来了巨大的压力,其中的难点之一就是为每个短视频快速、准确地打上标签。为了解决人工编辑的时效和积压问题,自动化标签技术成为各大内容领域公司都非常关注的关键课题…

[附源码]java毕业设计流浪宠物免费领养系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python:突然发现好看壁纸的都在某度图片库了,这还爬什么壁纸网站?

用Python把最大的爬虫爬一遍前言开发环境 & 第三方模块代码展示效果展示最后前言 最近忙着又没更新,这不抽出时间了,赶紧来更新! 众所周知,某度本身就是最大的爬虫脚本,那么纯纯的去某个网站找壁纸,还…

mysql 日期函数

想实现增加几个月,或者减少几天 增加时间的函数DATE_ADD // 合同时间增加9个月: DATE_ADD(contract_time,INTERVAL 9 Month) select DATE_ADD(contract_time,INTERVAL 9 Month) from a where id ! "" 减少时间的函数DATE_SUB // 合同时间往…

随机访问文件类

RandomAccessFile类创建的流与前面的输入、输出流不同。RandomAccessFile类既不是输入流类InputStream的子类,也不是输入流类OutputStream的子类。 随机cessfile类创建对象为一。。。流个流流流流既既可以可以,也作源作源作源作源作源作源可以可以作为作…

通过逻辑回归和随机梯度下降法对乳腺癌数据集breastCancer和鸢尾花数据集iris进行线性分类

文章目录线性回归和逻辑回归StandardScaler处理线性分类乳腺癌数据集breastCancer鸢尾花数据集iris线性回归和逻辑回归 线性回归就是预测一个连续变量的值,线性回归假设因变量和自变量之间是线性关系的,线性回归要求因变量是连续性数值变量训练数据的特…

百果园再冲刺港交所上市:扩张靠加盟和放贷,余惠勇夫妇为实控人

11月16日,深圳百果园实业股份有限公司(下称“百果园”)再次在港交所递交上市申请材料。据贝多财经了解,这已经是百果园第二次递交招股书。相较于此前招股书,百果园补充披露了截至2022年6月30日的财务数据等信息。 据招…

Allegro模块镜像详细操作教程

Allegro模块镜像详细操作教程 Allegro支持模块镜像,以下面这个模块为例 Placement edit模式下,创建一个mdd文件 复用这个模块 复用后先别放下来,右击mirror 再放下来,模块内的孔,铜皮,线,器件都被镜像好了 This section is describe what the function allegro ha…

学校官网首页 2页网页设计(HTML+CSS+JavaScript)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 | 校园运动会 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网…

Tomcat 安装和简单介绍

目录 Tomcat是什么? Tomcat下载安装 Tomcat目录介绍 Tomcat 启动 在 Tomcat 上部署静态页面 1.部署单个 HTML 2.部署 HTML到单独的目录 Tomcat是什么? Tomcat 是一个HTTP服务器! 我们在开发项目时,需要实现一个服务器来搭建网站的“后端部分”&a…

Js轮播图

效果图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>*{m…

【Logback+Spring-Aop】实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」

日志追踪 日志追踪对于功能问题的排查和数据流转的路径分析时非常重要的&#xff0c;有了全链路日志追踪体系机制可以非常有效且快速的定位问题&#xff0c;但在多线程环境中&#xff0c;若没有相关成熟的框架的支持&#xff0c;想要实现日志追踪&#xff0c;就需要手动将主线…

流程表单初体验

文章目录1. 表单分类2. 动态表单3. 启动带表单的实例4. 查询任务上的表单5. 保存与完成有小伙伴在星球上催了好几次了&#xff0c;今天松哥就来和大家聊一聊流程中的表单。1. 表单分类 整体上来说&#xff0c;我们可以将表单分为三种不同的类型&#xff1a; 动态表单&#xf…

string的应用及模拟实现

目录 string的应用 insert函数 insert插入字符串 insert插入string对象 erase函数 erase的使用方法&#xff1a; assign函数 assign的第一种使用方法&#xff1a; assign的第二种使用方法&#xff1a; replac函数&#xff1a; replace的一种使用方法&#xff1a; find …

Java集合使用实验

1. 在HashSet集合中添加三个Person对象&#xff0c;把姓名相同的人当做同一个人&#xff0c;禁止重复添加。要求如下: Person类中定义name和age属性&#xff0c;重写hashCode()方法和equals()方法&#xff0c;针对Person类的name属性进行比较&#xff0c;如果name相同&#xf…

一行代码解决Scrollview和TextInput焦点获取问题

前言 业务开发中搜索框和列表的组合页面应该是比较常见的场景&#xff0c;那么有什么坑呢&#xff1f; 最近在开发过程就遇到了一个问题&#xff0c;输入搜索关键词查询接口返回数据后&#xff0c;点击列表项并返回上个页面时&#xff0c;发现需要两次点击&#xff0c;纳尼&a…

ConcurrentHashMap的transfer阅读

[TOC] 流程图 ConcurrenthashMap 的 transfer 主要是用于扩容重组阶段&#xff0c;当内部数组的容量值超过阈值时&#xff0c;将触发扩容重组&#xff0c; transfer 是该过程的主要实现。 相关概念 ConcurrentHashMap 中&#xff0c;使用一个字段复用了多种功能&#xff0c;…