Hadoop
-
简单说一下hadoop和spark的shuffle过程
Hadoop:map端保存分片数据,通过网络收集到reduce端。 Spark:spark的shuffle实在DAGSchedular划分Stage的时候产生的,TaskSched...
-
用mapreduce怎么处理数据倾斜问题
本质:让各分区的数据分布均匀 可以根据业务特点,设置合适的partition策略 如果事先根本不知道数据的分布规律,利用随机抽样器抽样后生成partition策略再处理
-
HDFS 在上传文件的时候,如果其中一个 DataNode 突然挂掉了怎么 办
客户端上传文件时与 DataNode 建立 pipeline 管道,管道正向是客户端向DataNode 发送的数据包,管道反向是 DataNode 向客户端发送 ack 确认,也就...
-
请解释一下 JobTracker 在 Hadoop 中的作用?
资源管理,即管理 TaskTrackers 任务生命周期管理,即跟踪任务进度和任务容错 跟踪资源可用性
-
解释一个Reducer的核心方法?
cleanup() - 在清理临时文件的任务结束时仅使用一次。 reduce() - 每个键总是调用一次关联的缩减任务。 setup() - 用于配置各种参数,例如分布式缓存和输入...
-
解释一下 SequenceFileInputFormat ?
序列文件是数据从一个 MapReduce 作业传递到另一个作业的有效中间表示。它们可以作为其他 MapReduce 任务的输出生成。 SequenceFileInputFormat...
-
你对Hadoop中的Combiner是怎么理解的?
Combiners 通过减少发送到 reducer 所需的数据来提高 MapReduce 框架的效率。一个组合器是一个小型化的reducer,负责执行本地reduce 任务。 组合...
-
请解释一个 MapReduce 分区器?
MapReduce Partitioner 有助于将地图输出均匀分布在减速器上。它通过确保单个键的所有值都进入同一个减速器来做到这一点。 MapReduce Partitioner...
-
MapReduce 编程模型是否允许 reducer 相互通信?
Reducers 在 MapReduce 框架中独立运行。没有办法建立彼此的通信。
-
请解释一下MapReduce框架中的分布式缓存?
分布式缓存是 MapReduce 框架提供的一个实用程序,用于缓存应用程序所需的文件。一旦用户缓存了一个作业的文件,Hadoop 框架就会使其在运行 map/reduce 任务的所...
-
为什么在mapper中不能进行聚合?为什么我们需要减速机呢?
- 聚合需要所有映射器函数的输出,这可能无法在映射阶段收集,因为映射器可能运行在与包含数据块的机器不同的机器上。 - 没有排序就无法进行聚合,并且它不会出现在映射器函数中。 - 试...
-
枚举一个MapReduce程序中需要指定的各种配置参数?
数据输入格式 作业在分布式文件系统中的输入位置 作业在分布式文件系统中的输出位置 数据输出格式 包含地图功能的类 包含reduce函数的类 包含映射器、减速器和驱动程序类的 JAR...
-
请解释 HDFS Block 和 Input Split 之间的区别?
HDFS 块是 Hadoop 集群中存储数据的物理划分。相反,输入拆分是相同的逻辑拆分。 HDFS 将存储的数据划分为块以有效地存储它们,而 MapReduce 将数据划分为 In...
-
请解释一下 Hadoop 中的推测执行?
当发现某个节点执行任务的速度较慢时,主节点会在其他节点上执行同一任务的另一个实例。在这两者中,第一个完成的任务被接受,而另一个被杀死。这在 Hadoop 中称为推测执行。