大数据常见面试题

本文深入探讨Hadoop的序列化问题,Hadoop集群的运行模式,HDFS的Block设计,NameNode与SecondaryNameNode的角色,以及HDFS的读写流程。同时,文章也涉及HBase的主要构成、与Hive/Mysql的区别以及Kafka中Zookeeper的作用。
摘要由CSDN通过智能技术生成
一、什么是序列化和反序列化?为什么要用序列化?Hadoop为什么不用Java的序列化?
1、序列化和反序列化
  • 序列化:是指将内存中的对象转成字节序列以便存储到硬盘(持久化)或者在网络传输;
  • 反序列化:将字节序列或者磁盘持久化文件转译成内存中的对象;
2、 为什么要序列化?
  • 一般来说活得对象值存在内存中,关机断电就没了,而“活着”的对象只能由本地进程使用,不能被发送到网络上的另一台计算机。而序列化可以存储“活着”的对象,并发送到远程计算机。
3、为什么Hadoop不用Java的序列化?

Hadoop序列化的特点:
对于处理大数据的Hadoop平台,其序列化机制需要具有如下特征:

  • 紧促:一个紧凑的序列化机制可以充分利用数据中心的带宽,使用高效的存储空间
  • 快速:在进程间通信(包括 MapReduce过程中涉及的数据交互)时会大量使用序列化机制,因此,必须尽量减少序列化和反序列化的开销
  • 可扩展:随着系统的发展,系统间通信的协议会升级,类的定义会发生变化,序列化机制需要支持这些升级和变化
  • 互操作:可以支持不同开发语言间的通信,如C++和Java间的通信

Java序列化是一个重量级序列化框架(serializable),一个对象被序列化之后会附带很多额外的信息(各种校验信息,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值