其他分享
首页 > 其他分享> > 大数据面试题V3.0

大数据面试题V3.0

作者:互联网


Hadoop基础

  1. 介绍下Hadoop

    分布式系统架构。开发分布式程序。利用集群的威力进行高速运算和存储。
  2. Hadoop的特点

    高可靠性
    高效性
    高可扩展性
    高容错性
    低成本
  3. 说下Hadoop生态圈组件及其作用

    1,HDFS (分布式文件系统)
    2,资源管理器(YARN 和 mesos)
    3,mapreduce(分布式计算框架)
    4,flume(日志收集工具)
    5, hive(基于hadoop的数据仓库)
    6,hbase(分布式列存数据库)
    7,zookeeper(分布式协作服务)
    8,sqoop(数据同步工具)
    9,pig(基于hadoop的数据流系统)
    10,mahout(数据挖掘算法库)
  4. Hadoop主要分哪几个部分?他们有什么作用?

    三大核心组件:
    HDFS(分布式文件存储)
    MAPREDUCE(分布式计算)
    YARN(资源调度)
  5. Hadoop 1.x,2x,3.x的区别

    Hadoop1.x : MR 处理业务逻辑运算 和 资源的调度,耦合性较大。
    Hadoop2.x : 增加了Yarn。Yarn负责资源的调度,MR负责运算。
    Hadoop3.x : 在组成上没有变化。
  6. Hadoop集群工作时启动哪些进程?它们有什么作用?

    1)NameNode主服务器,管理 名称空间 和对 文件访问,保存metadate。 
    2)SecondaryNameNode提供周期检查点和清理任务。
    3)DataNode守护进程,负责管理连接到节点的存储。
    4)ResourceManager JobTracker负责调度DataNode上的工作。TaskTracker执行实际工作。
    5)NodeManager TaskTracker执行任务。
    6)DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
    7)JournalNode 高可用情况下存放namenode的editlog文件.
  7. 在集群计算的时候,什么是集群的主要瓶颈

    磁盘IO
  8. 搭建Hadoop集群的xml文件有哪些?

    core-site.xml      核心配置文件,主要定义文件访问 hdfs://
    hadoop-env.sh      主要配java路径
    hdfs-site.xml       hdfs的相关配置
    mapred-site.xml    MR相关配置
    slaves               从节点
    yarm-site.xml       资源调度
  9. Hadoop的checkpoint流程

    1. 请求主节点Namenode 停⽌使⽤ edits⽂件,将新的写操作记录到新⽂件 edits.new。
    2. 从主节点获取 fsimage 和 edits ⽂件(采⽤HTTP GET)
    3. 将 fsimage 载⼊内存,执⾏ edits 的操作,创建新 fsimage,并发回主节点(使⽤HTTP POST)
    4. 主节点将换旧的 fsimage ,⽤ edits.new 替换 edits⽂件。更新 fstime ⽂件 记录检查点执⾏的时间。
  10. Hadoop的默认块大小是多少?为什么要设置这么大?

    Hadoop 1 默认大小 64M
    Hadoop 2 之后默认大小 128M 
    为了最小化寻址开销
  11. Block划分的原因

    文件是分布式储存的,被分成块分别储存在不同的机器上。
    而多个副本,是为了安全的考虑。
  12. Hadoop常见的压缩算法?

    gzip、lzo、snappy、Bzip2
  13. Hadoop作业提交到YARN的流程?

    (1)作业提交
    Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业, 向 RM 申请一个作业 id。
    RM 给 Client 返回该 job 资源的提交路径和作业 id。
    Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径,向 RM 申请运行 MrAppMaster。
    (2)作业初始化
    当 RM 收到 Client 的请求后,AppManager 将该 job 添加到容量调度器 Scheduler 中。空闲的 NodeManager 领取到该 Job,NM 创建 Container,并产生 Appmaster,下载 Client 提交的资源到本地。
    (3)任务分配
    AppMaster 向 RM 申请运行多个 MapTask 任务资源,RM 将运行 MapTask 任务分配给另外空闲的 NodeManager,领取任务后创建容器。
    (4)任务运行
    MR 向两个接收到任务的 NodeManager 发送程序启动命令,启动 MapTask,MapTask 对数据分区排序。运行完毕后,AppMaster向RM申请容器,运行ReduceTask。ReduceTask 向 MapTask 获取相应分区的数据。程序运行完毕后,MR 会向 RM 申请注销自己。
    (5)进度和状态更新
    YARN 中的任务将其进度和状态(包括 counter)返回给应用管理器, 客户端每秒(通过 mapreduce.client.progressmonitor.pollinterval 设置)向应用管理器请求进度更新, 展示给用户。
    (6)作业完成

     

  14. Hadoop的Combiner的作用

  15. Hadoop序列化和反序列化

  16. Hadoop的运行模式

  17. Hadoop小文件处理问题

  18. Hadoop为什么要从2.x升级到3.x?

  19. Hadoop的优缺点

标签:xml,面试题,V3.0,Hadoop,edits,MR,RM,数据,节点
来源: https://www.cnblogs.com/chang09/p/16418882.html