在这里插入图片描述
- Hadoop的Combiner的作用
Hadoop的Combiner是一个在map任务执行完之后、在数据被发送到reduce任务之前执行的函数。其主要作用是减少Map和Reduce之间的数据传输量,提高Hadoop处理大数据的效率。
具体来说,Combiner会对map任务输出的key-value对进行局部汇总。例如,如果我们进行一个求平均值的mapreduce任务,map任务输出的可能是一个(key,[value1, value2, …])的形式,其中key是某个特征,value是该特征在所有输入文件中出现的次数。而Combiner会对这些value进行求和,得到一个(key,sum(value))的输出。这样,当这些数据被发送到reduce任务时,reduce任务就不需要再对这些value进行求和,而可以直接对这些value进行平均,大大减少了数据传输和处理的量。
需要注意的是,Combiner的输出和Reduce的输出类型应该是一样的,而且Combiner的函数应该是可合并的,即多个Combiner的输出可以被合并成一个单一的输出。这是因为Combiner是在map任务上并行执行的,而reduce任务可能需要合并多个map任务的输出。计算逻辑上,Combine操作后不会影响计算结果,像求和,最大值就不会影响,求平均值就影响了。
12. Hadoop序列化和反序列化
Hadoop 框架提供了一种默认的序列化方式,称为序列化。Hadoop 序列化是用于在分布式系统中存储和传输数据的一种方式,它可以有效地存储和传输大量数据。
Hadoop 的序列化机制包括两个步骤:序列化和反序列化。
序列化:序列化是将对象转换为字节序列的过程,以便在网络上传输或写入到磁盘进行永久存储的过程。Hadoop使用了一种称为Writable的接口来实现序列化。实现Writable接口的对象可以被Had