【大数据组件】Hadoop之Hadoop整体

Hadoop整体

什么是hadoop/hadoop定义/怎么理解hadoop?

  1. Hadoop(本身)是一个能够对海量数据进行分布式处理的框架,主要包括三个部分,HDFS,MapReduce,YARN,其中HDFS为海量数据提供了存储,MR是海量数据的计算框架,YARN提供资源管理和调度分配。
  2. Hadoop(广义)上指的是Hadoop生态圈,以Hadoop为平台的各种应用框架、大数据技术相关的开源组件或产品,如Hive,Spark,Zookeeper等

Hadoop中的几个进程和作用

  1. NameNode:它是Hadoop中的主服务器,管理HDFS的名称空间;管理数据块(Block)映射信息;配置副本策略;处理客户端Client读写请求。
  2. SecondaryNameNode:它不是NameNode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
  3. DataNode存储实际的数据块;执行数据块的读/写操作。
  4. ResourceManager(JobTracker)负责调度DataNode上的工作。
  5. NodeManager(TaskTracker)执行任务
  6. DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把健康状态信息写入ZK。FC也有选择谁作为Active NN的权利。
  7. JournalNode 两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信,高可用情况下存放NameNode的editslog文件。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控editlog的变化,把变化应用于自己的命名空间。

Hadoop的作业提交流程

  1. 作业提交
    Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。
    Client向ResourceManager申请一个作业id。
    RM给Client返回资源提交的路径和作业id。
    Client将jar包,切片信息,xml配置文件提交到指定路径。
    Client提交完成后向MR申请运行mrApplicationMaster。
  2. 作业初始化
    RM收到Client的请求以后,将job转换成一个Task,提交到任务队列中。
    某一个空闲的NodeManager领取该job。
    NM创建Container,申请运行mrApp。
    NM下载Client提交的资源。
  3. 任务分配
    mrApp向RM请求运行多个MapTask任务。
    RM将mrApp提交的任务分配给多个NM,NM分别启动MapTask。
    MapTask运行完毕以后,mrApp向RM请求运行ReduceTask。
    RduceTask从MapTask获取相应的分区数据。
    程序运行完毕以后,MR向RM注销自己。

Hadoop1.0,2.0,3.0的区别

  1. Hadoop1.0由分布式存储系统HDFS和分布式计算框架MR组成,其中HDFS由一个NameNode和多个DataNode组成,MR由一个JobTracker和多个TaskTracker组成,因此在1.0中容易导致单点故障,拓展性差,性能差,支持编程模式单一的问题。
  2. Hadoop2.0可服了1.0的不足,增加了以下关键特性
    (1)引入了全的通用资源管理系统YARN替代了1.0中的JobTracker,其资源管理和作业追踪的功能被抽象为ResourceManager和AppMaster两个组件,YARN还支持多种应用程序和框架,提供统一的资源调度和管理功能。
    (2)2.0解决了NameNode单点故障和内存受限的问题,提供了NFS,QJM和Zookeeper三种可选的共享存储系统
    (3)提供了HDFS快照,防止数据误删、丢失
    (4)从2.2.0版本开始支持windows操作系统
    (5)引入了文件追加操作Append
    (6)针对HDFS,支持异构的存储层次
    (7)针对HDFS,通过数据节点为存储在HDFS中的数据提供内存缓冲功能
    (8)1.0默认块的大小为64M,2.0为128M
  3. Hadoop3.0是直接基于JDK1.8发布的一个新版本,引入了以下关键特性
    (1)HDFS可擦除编码(纠删码ES),相较于默认的三副本机制,节省了约50%存储空间
    (2)增加了多NameNode支持,即支持一个ActiveNameNode和多个StandbyNameNode的部署方式
    (3)MR native Task优化,添加了map输出collector的本地实现
    (4)MR内存参数自动推断
    (5)YARN基于cgroup的内存和磁盘IO隔离
    (6)YARN container resizing
    (7)磁盘平衡器,支持单个DN上不同硬盘之间的数据balancer

怎么处理Hadoop宕机问题

  1. 首先判断是什么问题导致了宕机
  2. 如果是MR造成,此时需要控制YARN同时运行的任务数,和每个任务申请的最大内存,调整参数
  3. 如果是NameNode宕机,可能是写入文件过量造成,此时需要调高Kafka的存储大小,控制从Kafka到HDFS的写入速度。

Hadoop HA高可用

  1. HDFS-HA:
    (1)在启动NN之前,需要启动(QJM)Quorum Journal Manager,QJM主要用来管理NN之间的数据同步,当active NN数据更新时会传递给QJM,QJM在所有的NN之间同步,最后QJM将active NN 更新的数据同步到了standby NN中。
    (2)启动多个NN时,并配置NN的主机地址,还要配置隔离机制,防止出现多台active的设备,容易抢占资源等。
    (3)引入zookeeper来对NN进行监听,当activeNN崩溃的话,zookeeper监听到后马上通知zookeeper的leader进行主备选举,在standbyNN中选举出一台,并将它置为active模式替换崩溃的NN。
  2. YARN-HA:
    (1)通过在yarn-site.xml中配置对zookeeper支持。
    (2)启动其他的ResourceManager后,都会在standby状态。
    (3)当active ResourceManager 意外停止时,zookeeper就会选举出一个standby 状态的ResourceManager,然后将原来ResourceManager的状态信息写入到standby ResourceManager中,最后将standby ResourceManager置为active状态,完成了主备切换。

Hadoop中的安全模式是什么?

在安全模式下,HDFS群集变为只读。文件系统中不允许修改、删除或复制任何数据块。

Hadoop的基准测试

A:搭建完Hadoop集群后需要对HDFS读写性能和MR计算能力测试,测试jar包在Hadoop的share文件夹下,如计算pi值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值