我想要实现的是构建和安装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容器发生故障时的故障转移过程。我试图找到一些详细的资源,这些资源可以让我回答与以下场景相关的一些问题
如何获取应用程序发送给资源管理器的待处理请求数?据我所知,资源管理器可能不会立即分配请求的资源,因此请求将被挂起,对吧? 最佳答案 我正在使用Hadoop2.7.1。从资源管理器UI中,您可以看到“未完成的资源请求”。在RM用户界面中:点击正在运行的应用程序(例如application_1447644421851_0004)在申请页面中,点击尝试ID(例如appattempt_1447644421851_0004_000001)在“应用程序尝试ID”页面中,您将看到“TotalAllocatedContainers”和“TotalO
我了解HDFS和MapReduce的概念,以及将处理逻辑移动到数据以提高效率的重要性。我什至能够在我的基本Hadoop集群上运行几个mapreduce作业。围绕这些概念,有许多不同的技术,如YARN、HUE、OOZIE,所有这些似乎都在做同样的事情(至少从非常高的水平来看),即作业的操作可见性和CRUD能力(可以是map-reduce或者是其他东西)。我做出这个假设是否正确,或者它们之间是否存在更根本的区别?谢谢凯 最佳答案 YARN-MapReduce是一种API,您必须在其中实现数据处理逻辑。编译代码后,您必须使用hadoopj
我正在使用当前版本的Hadoop,并运行一些TestDFSIO基准测试(1.8版)来比较默认文件系统是HDFS与默认文件系统是S3存储桶的情况(通过S3a使用)。在默认文件系统为S3a的情况下读取100x1MB文件时,我观察到YARNWebUI中的最大容器数小于默认情况下的HDFS,而S3a约为慢4倍。当使用默认文件系统S3a读取1000x10KB文件时,我观察到YARNWebUI中的最大容器数至少比默认为HDFS,S3a大约慢16倍。(例如,默认情况下HDFS的测试执行时间为50秒,而默认情况下S3a的测试执行时间为16分钟。)启动的maptask的数量在每种情况下都符合预期,这方面
我已经实例化了一个Hadoop2.4.1集群,我发现运行MapReduce应用程序的并行化取决于输入数据所在的文件系统类型。使用HDFS,MapReduce作业将生成足够多的容器以最大限度地利用所有可用内存。例如,一个172GB内存的3节点集群,每个map任务分配2GB内存,将创建大约86个应用程序容器。在非HDFS的文件系统上(如NFS或在我的用例中,并行文件系统),MapReduce作业将仅分配可用任务的子集(例如,对于相同的3节点集群,大约25-创建了40个容器)。由于我使用的是并行文件系统,因此我不太关心使用NFS时会发现的瓶颈。是否有YARN(yarn-site.xml)或M
作为tez的github页面说,tez非常简单,其核心只有两个组件:数据处理管道引擎,以及数据处理应用程序的主控程序,可以将上述任意数据处理“任务”放在一个任务DAG中那么我的第一个问题是,现有的mapreduce作业(例如tez-examples.jar中存在的wordcount)如何转换为任务DAG?在哪里?或者他们不...?我的第二个也是更重要的问题是关于这部分的:tez中的每个“任务”都有以下内容:用于使用键/值对的输入。处理它们的处理器。输出以收集处理后的键/值对。谁负责在tez任务之间拆分输入数据?它是用户提供的代码还是Yarn(资源管理器)甚至是tez本身?输出阶段的问题