面试常问:Hadoop

2022-03-28  本文已影响0人  那就这样吧丶xx

二、Hadoop

1、入门

1)常用端口号
Hadoop3.x
     HDFS      历史服务器      MapReduce          客户端
     9870           19888               8088                9000/8020
Hadoop2.x
     HDFS     
     50070
2)安装配置文件
Hadoop3.x
     core-site.xml      hdfs-site.xml     mapred-site.xml        workers
Hadoop2.x
     core-site.xml      yarn-site.xml     mapred-site.xml        slaves

2、HDFS

1)读写流程
2)小文件问题

(1)占namenode元数据内存
          (不管文件多小,都要占用150字节)
          128g内存的namenode能存储多少个文件块
          128g * 1024M * 1024 KB * 1024 字节 /150 字节 = 约等于9亿
(2)增加切片,进而影响增加MapTask个数(默认1g),增加计算内存

(1)har归档
(2)CombineTextInputformat     改变切片
(3)jvm重用

3)HDFS有几个副本

3个

4)HDFS块大小

    2.x 3.x 默认块 128M
    本地模式 32M
    1.x 块多大 64M
    hive的块大小:256M
    在大厂企业块大小:256M
    块大小,取决于服务器之间的传输速度

3、MapReduce

shuffle及其优化: map方法之后,reduce方法之前,混洗的过程

  • Shuffleg过程及三次排序
    Map方法出来,会进入getPartition()方法进行分区,然后会进入环形缓冲区(默认100M)一侧存数据,一侧存索引,到了80%后会溢写
    第一次排序在环形缓冲区,对溢写文件按key的索引进行快速排序,按照字典顺序排序。
    第二次排序在环形缓存区溢写进磁盘后,对所有在磁盘的文件按分区内部进行归并排序,按照分区写入进磁盘,然后将磁盘的文件合并成一个最终文件。
    第三次Reduce Task拉取数据存储到内存,如果存不下,则放进磁盘,然后将内存和磁盘的数据进行归并排序,则还可以进行(第四次排序)分组。最后进入reduce方法

优化方案

自定义分区
调整环形缓冲区大小100M->200M
增大环形缓冲区溢写比列80%->90%或95% (从减少溢写文件个数角度)
溢写文件提前进行Combiner 只要不影响最终业务逻辑
在磁盘对溢写文件进行归并时默认归并10个,可改成20个
Map端输出为了减少磁盘IO采用压缩(快,Snappy,LZO)
Reduce端输出看需求:下一个MapReduce输入,数据量大小,切片
Reduce端默认一次拉取5个,可以多拉一些10-20,增大reduce内存

默认内存及内存优化大小


MapReduce内存大小及调优.png

4、Yarn

1)FIFO、容量调度器、公平调度器
2)默认哪个调度器:
        Apache 默认容量
        CDH 默认公平
3)FIFO调度器:
        支持单队列、先进先出、同一时间只有一个任务执行。
        并发度非常低、在企业里面不会使用。
4)容量调度器:
        支持多队列,由多个FIFO调度器组成,优先满足,先进入的任务,并发度一般
5)公平调度器:
        支持多队列,每个任务都公平享有资源,并发度最高
6)在企业里面怎么选择
        如果电脑服务器性能比较好,对并发度要求比较搞,选择公平调度器(上市公司、大厂)
        如果电脑服务器性能比较差,对并发度要求不是特别搞,选择容量调度器(中小型公司)
7)在企业开发时,如何创建队列
        容量调度器默认就一个default队列;
        按照执行任务的框架创建:hive、spark、flink
        按照业务模块创建(较多):登录注册模块、订单、物流
618降级使用 登录注册模块、订单、物流(x) 优先保障前两个任务
8)YARN工作机制

5、Hadoop解决数据倾斜方法

1)提前在map进行combine,减少传输的数据量
2)导致数据倾斜的key大量分布在不同的mapper
(1)局部聚合加全局聚合
(2)增加Reducer,提升并行度
(3)实现自定义分区

上一篇下一篇

猜你喜欢

热点阅读