我在YARN中运行一个Spark应用程序,它有两个执行器,Xms/Xmx为32GB,spark.yarn.excutor.memoryOverhead为6GB。我看到应用程序的物理内存不断增加并最终被节点管理器杀死:2015-07-2515:07:05,354WARNorg.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl:Container[pid=10508,containerID=container_1437828324746_0002_01_000003]is
我正在尝试使用YARNnodelabels标记工作节点,但是当我在YARN(Spark或简单的YARN应用程序)上运行应用程序时,这些应用程序无法启动。使用Spark,指定--confspark.yarn.am.nodeLabelExpression="my-label"时,作业无法启动(在Submittedapplication[...]上被阻止,请参阅下面的详细信息)。使用YARN应用程序(如distributedshell),当指定-node_label_expressionmy-label时,应用程序也无法启动这是我到目前为止所做的测试。YARN节点标签设置我正在使用Googl
我正在尝试使用yarn运行Spark,但我遇到了这个错误:线程“main”中的异常java.lang.Exception:当使用master'yarn'运行时,必须在环境中设置HADOOP_CONF_DIR或YARN_CONF_DIR。我不确定“环境”在哪里(具体是什么文件?)。我尝试使用:exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexportYARN_CONF_DIR=$HADOOP_HOME/etc/hadoop在bash_profile中,但这似乎没有帮助。 最佳答案 在使用Ya
我在少数功能强大的机器上部署了一个Hadoop2.2集群。我有使用YARN作为框架的限制,我不是很熟悉。如何控制并行运行的实际map和reduce任务的数量?每台机器都有很多CPU内核(12-32)和足够的RAM。我想最大限度地利用它们。我如何监控我的设置是否确实提高了机器的利用率?在哪里可以查看在给定作业中使用了多少个内核(线程、进程)?在此先感谢您帮助我熔化这些机器:) 最佳答案 1.在MR1中,mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.task
我正在尝试在YARN模式下使用sparksubmit在hadoop集群上启动spark任务。我正在从我的开发机器上启动spark-submit。根据RunningSparkOnYARN文档,我应该在环境变量HADOOP_CONF_DIR或YARN_CONF_DIR上提供hadoop集群配置的路径。这就是它变得棘手的地方:如果我将任务发送到远程YARN服务,为什么这些文件夹必须存在于我的本地机器上?这是否意味着spark-submit必须位于集群内部,因此我无法远程启动spark任务?如果没有,我应该用什么填充这些文件夹?是否应该从任务管理器服务所在的YARN集群节点复制hadoop配置
我想要实现的是构建和安装Oozie4.2.0,这将使我能够将Spark作业提交到YARN集群。我通过执行以下命令构建发行版:oozie-4.2.0/bin/mkdistro.sh-Puber-Phadoop-2-DskipTests。这创建了oozie-4.2.0-distro.tar.gz包,我可以在里面找到oozie-4.2.0-sharelib.tar.gz。但是,许多在线教程指出我应该使用oozie-4.2.0-sharelib-yarn.tar.gz才能使用YARN。这样的文件不包含在发行包中。如何让构建过程输出YARN版本的sharelibs?我尝试继续使用非YARN版本,
我正在使用Spark提交通过YARN运行spark作业,在我的spark作业失败后,作业仍显示状态为SUCCEED而不是FAILED。如何将退出代码作为失败状态从代码返回到YARN?我们如何从代码中发送yarn不同的应用程序代码状态? 最佳答案 我认为你做不到。我在spark-1.6.2上遇到过同样的行为,但在分析失败后,我没有看到任何明显的方法可以从我的应用程序发送“错误”退出代码。 关于scala-Sparkyarn返回退出代码未更新,因为webUI中失败-spark提交,我们在St
我在一个15节点的Hadoop集群上安装了spark-1.6.1-bin-hadoop2.6.tgz。所有节点都运行Java1.8.0_72和最新版本的Hadoop。Hadoop集群本身是功能性的,例如YARN可以成功运行各种MapReduce作业。我可以使用以下命令在节点上本地运行SparkShell而不会出现任何问题:$SPARK_HOME/bin/spark-shell。我还可以成功运行一些Spark示例,例如使用YARN和集群模式的SparkPi。但是当我尝试在部署模式为client的YARN上运行SparkShell时,我遇到了问题:hadoopu@hadoop2:~$$SP
我在hadoop集群中有10个节点,内存为32GB,一个节点内存为64GB。对于这10个节点,节点限制yarn.nodemanager.resource.memory-mb设置为26GB,对于64GB节点设置为52GB(有一些作业需要50GB的单个reducer,它们运行在这个节点)问题是,当我运行需要8GB映射器的基本作业时,32GB节点并行生成3个映射器(26/8=3),而64GB节点生成6个映射器。由于CPU负载,此节点通常最后完成。我想以编程方式限制作业容器资源,例如将大多数作业的容器限制设置为26GB。如何做呢? 最佳答案
我试图了解在以集群模式部署Yarn时,SparkDriver是否是单点故障。因此,我想在这种情况下更好地了解有关SparkDriver的YARN容器的故障转移过程的内部结构。我知道Spark驱动程序将在Yarn容器内的SparkApplicationMaster中运行。如果需要,SparkApplicationMaster将向YARNResourceManager请求资源。但是我还没有找到足够详细的文档来说明在SparkApplicationMaster(和Spark驱动程序)的YARN容器发生故障时的故障转移过程。我试图找到一些详细的资源,这些资源可以让我回答与以下场景相关的一些问题