HDFS读流程、写流程:
写流程:Client将文件切分成多个Block,然后逐个上传。Client与NameNode交互,获取文件存储的位置信息。Client根据位置信息,与相应的DataNode交互,写入数据块。
读流程:Client向NameNode请求读取文件。NameNode返回文件所在的DataNode位置信息给Client。Client根据位置信息,直接从DataNode读取数据块,并组合成完整的文件。
校验和的作用:校验和用于确保数据的完整性和准确性。在HDFS中,写入数据时会计算校验和,并在读取时验证。如果校验和不匹配,说明数据可能在存储或传输过程中损坏,需要进行修复或重新获取。
什么是序列化与反序列化:序列化是将内存中的对象转换为字节序列(或其他数据传输协议),以便于存储到磁盘或网络传输。反序列化则是将收到的字节序列(或其他数据传输协议)转换回内存中的对象。
常见的数据压缩算法:HDFS支持多种压缩算法,如Gzip、Snappy、LZO等。这些算法可以在保证数据完整性的前提下,显著减小数据的存储空间和传输带宽。
什么是Writable:Writable是Hadoop中用于序列化和反序列化的接口。Hadoop自己开发了一套序列化机制(Writable),用于将对象转换为字节序列进行存储和网络传输。
支持切分的压缩格式:支持切分的压缩格式通常用于处理大量小文件。例如,Sequence File和Avro File都支持文件的切分和压缩,从而提高存储和处理的效率。