Hadoop面试题(2)-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.什么是数据倾斜如何处理数据倾斜

数据倾斜指的是在分布式计算中数据在某些节点上不均匀地分布导致某些节点的负载过重影响整体计算性能。

处理数据倾斜的方法主要包括以下几种

  1. 增加分区数量通过增加数据的分区数量可以使数据更均匀地分布在多个节点上从而减轻某个节点的负载。可以使用动态分区或者预先定义的静态分区来实现。
  2. 优化Join操作数据倾斜常出现在Join操作中可以通过以下方式进行优化
    • 增加Join的并行度通过增加Join操作的并行度将数据分发到更多的节点上进行计算减轻负载。
    • 使用Map-side Join如果一个表的大小较小可以将其加载到内存中并在Map阶段进行Join操作避免Shuffle操作。
    • 使用Broadcast Join如果一个表的大小较小可以将其复制到每个节点上避免Shuffle操作。
  3. 数据重分布可以通过一些操作将数据重新分布使其更均匀地分布在各个节点上。例如可以使用DISTRIBUTE BYSORT BY语句来重新分布数据。
  4. 数据采样和统计分析可以对数据进行采样或者进行统计分析找出造成数据倾斜的原因然后根据结果进行调整和优化。
  5. 使用Combiner函数在MapReduce阶段使用Combiner函数可以在Map端对数据进行预先合并减少数据量从而减轻Shuffle阶段的压力。
  6. 使用BucketingBucketing是一种将数据划分为多个桶bucket的方法可以通过合理设置桶的数量使数据更均匀地分布在各个桶中从而减轻数据倾斜的问题。

2.Hadoop中的作业调度器是什么请解释FIFO调度器、容量调度器和公平调度器的工作原理。

Hadoop中的作业调度器是负责协调和分配集群资源给不同作业的组件。常见的作业调度器有FIFO调度器、容量调度器和公平调度器

  • FIFO调度器按照作业提交的顺序进行调度先提交的作业先执行适用于简单场景但不具备资源隔离和优先级控制的能力。
  • 容量调度器将集群资源划分为多个队列每个队列分配一定的资源可以设置队列的优先级和资源配额适用于多租户的场景。
  • 公平调度器将集群资源按照公平的方式分配给作业每个作业获取的资源与其需求成比例适用于资源公平共享的场景。

3.Hadoop中的数据本地性是什么为什么它对性能很重要

Hadoop中的数据本地性是指计算任务在执行时可以尽量在存储数据的节点上进行从而减少数据的网络传输开销。数据本地性对性能很重要因为网络传输是分布式计算的瓶颈。在Hadoop中通过调度器选择尽可能在存储数据的节点上执行任务来实现数据本地性。数据本地性有三种级别数据本地性Data Local、机架本地性Rack Local和远程本地性Off-Node。数据本地性越高任务执行的效率越高减少了网络传输开销。

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Hadoop