我们有一个在HDFS2.7.3上运行的Spark流应用程序,使用Yarn作为资源管理器....在运行应用程序时......这两个文件夹/tmp/hadoop/data/nm-local-dir/filecache/tmp/hadoop/data/nm-local-dir/filecache正在填满,因此磁盘......所以根据我的研究发现,在yarn-site.xml中配置这两个属性会有所帮助yarn.nodemanager.localizer.cache.cleanup.interval-ms2000yarn.nodemanager.localizer.cache.target-si
我想获取在ResourceManager上运行的每个应用程序。我正在使用Yarn自带的RESTAPI,特别是http:///ws/v1/cluster/apps此API调用返回我要查找的结果。但我想按开始时间降序排序。我得到的结果没有按任何特定顺序排序(我认为它是使用应用程序ID按字典顺序排序的,但我不确定)。该文档提供了API接受的参数列表,但我没有看到任何对结果进行排序的方法。如果RESTAPI不支持排序,那么有没有其他方法可以对结果进行排序?我正在关注的文档是这个https://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-ya
yarn是否会在hdfs上存储有关已完成应用程序的信息,包括运行时?我只是想通过hdfs上的一些文件来获取应用程序运行时(如果确实存在这样的文件,我已经检查了日志并且没有运行时信息)而不使用任何监控软件。 最佳答案 您可以使用ResourceManagerREST获取所有已完成应用程序的信息。http://resource_manager_host:port/ws/v1/cluster/apps?state=FINISHED对URL的GET请求将返回一个JSON响应(也可以获得XML)。必须针对每个应用程序的elapsedTime解
我有7个数据节点和1个名称节点。我们的每个节点都有32Gb的内存和20个内核。所以我将容器内存设置为30Gb,将容器虚拟CPU内核设置为18。然而,只有三个数据节点工作,其余数据节点不工作。下面的代码是我的设置。/opt/spark/bin/spark-submit\--masteryarn\--deploy-modecluster\--driver-memory4g\--driver-cores18\--executor-memory8g\--executor-cores18\--num-executors7\Java代码SQLContextsqlc=newSQLContext(sp
我正在编写YARN应用程序,它必须在每个集群节点上运行一些java代码。我从WritingYARNapplications开始,然后,在示例中遇到太多空格后,使用了thisgithubproject作为我申请的基础。正如我在深入研究exapmle的ApplicationMaster用法后发现的那样,我可以使用特定的org.apache.hadoop.yarn.client.api.ContainerRequest的构造函数,在特定主机上获取应用程序容器,但我需要集群节点列表来请求每台机器上的容器。通过这个问题搜索后,我发现解析yarn-site.xml不是获取集群机器URL的正确方法,
是否有一种简单的方法来查询yarn应用程序api以获取运行超过x时间的应用程序?下面的url给出了一个应用程序列表,但看起来不符合elapsedTime参数http://:/ws/v1/cluster/apps?states=RUNNING&elapsedTime=200000 最佳答案 elapsedTime不是受支持的查询参数。您可以使用jq来过滤符合条件的应用。curlhttp://:/ws/v1/cluster/apps?states=RUNNING|jq'.apps.app[]|select(.elapsedTime>20
spark-shell开始使用:spark-shell--masteryarn--executor-memory4G--num-executors100我期望yarn为spark-shell分配大约400GB的内存,但是当我转到RMUI时,它显示“已使用的内存”增加了大约804GB。我正在运行HDP2.5,在yarn-site.xml中将yarn.scheduler.minimum-allocation-mb设置为4096。对这是怎么发生的感到困惑。原来是spark内存开销和yarn内存分配机制的问题,查看:http://www.wdong.org/spark-on-yarn-wher
我知道对此有一些疑问,但没有足够的信息来解决我的问题。我尝试在我的Eclipse项目中以yarn-client模式运行作业。我有一个包含2个节点的hadoop集群(其中一个节点当前已关闭)。我尝试在集群模式下运行它(使用spark-submit)并且它工作正常。我尝试通过以下方式从eclipse项目在本地运行它:我正在尝试制作这样的Spark上下文:SparkConfconf=newSparkConf().setAppName("AnomalyDetection-BuildModel").setMaster("local[*]");这是有效的。但是当我尝试使用“yarn-client”
症状:sbin/start-dfs.sh和sbin/start-yarn.sh执行没有错误,但是localhost:8088显示0个事件节点。mapreduce作业无法连接到位于/0.0.0.0:8032的ResourceManager无密码(公钥)ssh已启用并正常工作。core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml均已正确配置。操作系统是在OracleVirtualBox上运行的CentOS7。 最佳答案 解决方案:我遵循的教程中没有说明:CentOS需
我制作了只有1个工作节点的yarn-cluster,当我提交我的spark应用程序作业时它似乎工作正常。当我提交多个作业时,作业在hadoop队列中并一个接一个地处理提交的申请。我想并行处理我的申请,而不是逐一处理。这有什么配置吗?或者无法在yarn上做到这一点? 最佳答案 默认情况下,Yarn会一个一个地提交作业。要提交多个作业,您可以更改执行程序核心的数量:spark-submitclass/jar--executor-memory2g--num-executors15--executor-cores3--masteryarn-