什么是Spark(四)集群

  Driver,主要的职责是生成DAG以及生成物理执行计划(Physical Execution Plan);Application,Job以及Stage都是在这个组建中生成的;
  ClusterMaster,包括五类:
  1)Apache YARN,Hadoop原生资源调度框架
  2)Apache Mesos,有粗粒度(coarse-grained,fine-grained),粗粒度资源一旦分配就不再改变;细粒度则是根据应用对于资源的需要动态分配;前者执行速度回比较快,但是有资源滥用的可能;后者执行速度可能会受影响,但是资源共享可以达到最大;
  3)Amazon EC2
  4)Stand alone Cluster Manager,Spark自带的Cluster Manager,同样提供coarse-grained和fine-grained对于资源的管理。
  5)Kubernetes
  Executor,主要的职责是执行任务以及缓存数据;在Spark定义的对象中Task就是在这个点上面执行的。

  在描述Spark部署的时候,要分清楚角色和组件;master,worker是节点的角色,对应的driver以及executor是组件。

  对于Cluster的几点建议:
  1)如果是单独spark来使用所有的共享资源;stand alone cluster manager就可以;
  2)如果是多个应用来共享资源(比如Hive),那么采用YARN或者是Mesos;
  3)如果对于资源比较敏感,请求多,资源相对少,采用Mesos(的细粒度模式);
  4)Executor所在的Worker节点最好和Hdfs部署一致;这样取用数据方便,可以有效减少shuffle。

原文地址:https://www.cnblogs.com/xiashiwendao/p/8641804.html