问题:
1、yarn和kafka在整个hadoop集群中是一个怎么的角色,对于整个集群来说起到一个什么作用?
2、知道yarn是作为资源分配的 它是怎么分配给hdfs资源的?
3、yarn、kafka和zookeeper之间有什么最用关系?是yarn和kafka受zookeeper控制吗?
4、kafka和hdfs有什么作用关系?
5、老师有一个整个集群的工作流程图吗 ,各个部件的作用关系的思维导图,有些地方模糊不清楚!
答案:
1. Yarn和kafka在整个hadoop集群中是一个怎么的角色,对于整个集群来说起到一个什么作用?
Yarn是集群的资源管理系统,在Hadoop集群(确切的说是Hadoop上的任务)中起到资源(内存、CPU)分配的作用。任何一个分布式程序执行时都需要从系统申请资源,Yarn就是充当资源的协调者的角色。
Kafka是消息队列,它跟Hadoop不是紧耦合的关系,只不过在实际项目中经常会一起使用。Kafka是个消息队列,在由多种方案组成的数据处理系统中,数据的产生,处理,通常由不同的系统充当。比如,数据产生于web service,而数据的处理,需要在Hadoop或者Spark中进行,此时就需要一个工具,可以将需要处理的数据从源头搬移到处理的系统中,Kafka就是这么个数据搬运渠道的角色。
2. 知道yarn是作为资源分配的 它是怎么分配给hdfs资源的?
Yarn只负责计算过程中的资源管理,不负责HDFS的资源。HDFS的资源主要是存储资源,由NameNode统一管理。
3. Yarn、kafka和zookeeper之间有什么最用关系?是Yarn和kafka受zookeeper控制吗?
Yarn在最开始的实现时,服务节点中ResourceManager为单机模式,那个时候,不需要借助Zookeeper也能正常提供服务。后来随着应用的发展,对于服务的高可用性有了更多的要求,出现了所谓ResourceManagerHA的方案,这里的HA(High Availability),就出现了两个RM同时为集群提供服务的情况,当出现这种两个服务共同做一件事情的时候,就需要一个方案来解决两个服务(RM)之间信息同步以及工作协调的问题,此时ZooKeeper就是作为这个中间的协调机制,出现在方案中(可以把它在这里简单理解为分布式锁)。
至于Kafka,其中也是多Broker的结构,多个Broker之间有很多信息需要同步,比如选择Partition主备份、主Broker挂球识别等需求,也是多服务之间需要互相感知及通信,于是又用到了Zookeeper。
Zookeeper谁也控制不了,只不过是这些分布式服务需要用到分布式锁、同步等服务时,把它拿了过来。
4、kafka和hdfs有什么作用关系?
HDFS是分布式存储,Kafka是个消息队列。
如果真要扯上关系,可以用上面关于消息产生、运输、处理的例子。消息可能产生于业务端,用Kafka运输,然后存到HDFS里面,供后面使用Hadoop MR或者Spark进行处理。
5、老师有一个整个集群的工作流程图吗 ,各个部件的作用关系的思维导图,有些地方模糊不清楚!
你看下面这个图是不是差不多能表达意思: