大数据面试题第二期*6

题1、Namenode挂了怎么办?

方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录。

方法二:使用importCheckpoint选项启动namenode守护进程,从而将SecondaryNameNode中数据拷贝到namenode目录中。

题2、Hadoop 的namenode 宕机怎么解决?

先分析宕机后的损失,宕机后直接导致client无法访问,内存中的元数据丢失,但是硬盘中的元数据应该还存在,如果只是节点挂了,重启即可,如果是机器挂了,重启机器后看节点是否能重启,不能重启就要找到原因修复了。但是最终的解决方案应该是在设计集群的初期就考虑到这个问题 ,做namenode的HA。

题3、谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?

(1)序列化和反序列化

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。 Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后 ,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。

(2)自定义bean对象要想序列化传输步骤及注意事项

(1)必须实现Writable接口

(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造

(3)重写序列化方法

(4)重写反序列化方法

(5)注意反序列化的顺序和序列化的顺序完全一致

(6)要想把结果显示在文件中,需要重写toString(),且用”\t”分开,方便后续用

(7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序

题4、FileInputFormat切片机制

(1)简单地按照文件的内容长度进行切片

(2)切片大小,默认等于block大小

(3)切片时不考虑数据集整体,而是逐个针对每一个文件单独切片

题5、自定义InputFormat流程

(1)自定义一个类继承FileInputFormat

(2)改写RecordReader,实现一次读取一个完整文件封装为KV

题6、如何决定一个job的map和reduce的数量?

(1)map数量

splitSize=max{minSize,min{maxSize,blockSize}}

map数量由处理的数据分成的block数量决定default_num = total_size/split_size;

(2)reduce数量

reduce的数量job.setNumReduceTasks(x),x为reduce的数量。不设置的话默认为1。

相关推荐

  1. 数据面试第二*6

    2024-06-07 21:38:07       29 阅读
  2. Oracle数据库面试-6

    2024-06-07 21:38:07       20 阅读
  3. 数据面试数据

    2024-06-07 21:38:07       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 21:38:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 21:38:07       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 21:38:07       82 阅读
  4. Python语言-面向对象

    2024-06-07 21:38:07       91 阅读

热门阅读

  1. 查看Hive表的描述信息,包括在HDFS上的Location信息

    2024-06-07 21:38:07       26 阅读
  2. 东方博宜1760 - 整理抽屉

    2024-06-07 21:38:07       31 阅读
  3. 详解布隆过滤器,实现分布式布隆过滤器

    2024-06-07 21:38:07       33 阅读
  4. 【数据库系统概论】数据库设计过程

    2024-06-07 21:38:07       34 阅读
  5. Python 正则表达式:深入解析匹配多个模式

    2024-06-07 21:38:07       26 阅读
  6. Alsa UCM

    Alsa UCM

    2024-06-07 21:38:07      23 阅读
  7. 使用 .NET Core 实现微服务(带例子)

    2024-06-07 21:38:07       30 阅读
  8. MySQL-6、单表访问方法

    2024-06-07 21:38:07       30 阅读
  9. 2003NOIP普及组真题 4. 麦森数

    2024-06-07 21:38:07       31 阅读
  10. python -【十一】pymysql 基础使用

    2024-06-07 21:38:07       25 阅读
  11. 二维数组知识点

    2024-06-07 21:38:07       23 阅读