04.18 Hadoop和Kafka中常常面试的重要的几道题

Hadoop的sequencefile文件特点?java序列化what?

Hadoop和Kafka中常常面试的重要的几道题

SequenceFile文件是Hadoop用来存储二进制形式的key-value 对而设计的一种平面文件;Hadoop 的HDFS 和MapReduce子框架主要是针对大数据文件来设计的,在小文件的处理上不但效率低下,而且十分消耗磁盘空间。每一个小文件占用一个Block。

通常解决办法通常是选择一个容器,将这些小文件组织起来统一存储。HDFS提供了两种类型的容器,分别是SequenceFile和MapFile。SequenceFile的每条记录是可序列化的字符数组。

序列化是指将结构化的对象转化为字节流以便在网络上传输或写入到磁盘进行永久存储的过程,反序列化是指将字节流转回结构化对象的过程。

说明一下kafka的message???

Hadoop和Kafka中常常面试的重要的几道题

Message由一个固定长度的header和一个变长的消息体body组成。header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性。body是由N个字节构成的一个消息体,包含了具体的key/value消息。

怎么查看kafka的offset

可以使用consumer.seekToEnd() 或者consumer.position() 得到当前最新的offset。

大数据中经常使用StringBuffer还是String?why?

Hadoop和Kafka中常常面试的重要的几道题

当需要对字符串进行操作时,使用 StringBuffer 而不是 String,String 是 read-only 的,如果对它进行修改,

会产生临时对象,而 StringBuffer 是可修改的,不会产生临时对象。


分享到:


相關文章: