【问题标题】:How to set yarn job queue for Titan MR job如何为 Titan MR 作业设置纱线作业队列
【发布时间】:2018-06-15 03:51:04
【问题描述】:

Titan 版本是 1.0.0 ​无论我尝试什么,所有的 yarn 应用程序最终都在默认队列中。这些是我尝试过的事情:

1) 在titan-hbase-solr.properties 中设置属性(以下均无效)

mapred.job.queue.name=myqueue 
mapreduce.job.queue.name=myqueue 
mapred.mapreduce.job.queue.name=myqueue 

2) 在 gremlin shell 中设置属性

gremlin> graph = TitanFactory.open("/usr/iop/4.2.5.0-0000/titan/conf/titan-hbase-solr.properties") 
gremlin> mgmt = graph.openManagement() 
gremlin> desc = mgmt.getPropertyKey("desc") 
gremlin> mr = new MapReduceIndexManagement(graph) 

gremlin> mgmt.set('gremlin.hadoop.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root.gremlin]: 

hadoop gremlin> mgmt.set('hadoop.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root]: hadoop Display stack trace? [yN] n 

gremlin> mgmt.set('titan.hadoop.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root]: titan Display stack trace? [yN] n 

gremlin> mgmt.set('mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root]: mapred Display stack trace? [yN] n gremlin> 

gremlin> mgmt.set('mapreduce.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root]: mapreduce Display stack trace? [yN] n 

gremlin> mgmt.set('gremlin.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root.gremlin]: mapred Display stack trace? [yN] n 

gremlin> mgmt.set('gremlin.hadoop.mapred.job.queue.name', 'myqueue') 
Unknown configuration element in namespace [root.gremlin]: hadoop Display stack trace? [yN] n 

【问题讨论】:

  • 您可以试试JanusGraph 看看是否适合您? JanusGraph 是 Titan 的最新分支; Titan 自 2015 年以来一直没有更新。这里是 blog post,了解如何配置 JanusGraph + YARN。
  • @MishaBrukman,感谢您的回复。我绝对知道 JanusGraph 是 Titan 的继任者。问题是,我问这个特殊的问题是因为 Titan 是遗留系统的一部分,它不能被 JanusGraph 取代。
  • 明白了;请参阅我的回答,详细了解我认为可能导致此问题的原因以及您如何能够继续前进。请让我知道这是否适合您;如果您找到替代解决方案,请发布另一个答案。祝你好运!

标签: hadoop mapreduce hadoop-yarn titan


【解决方案1】:

YARN 是 Hadoop 2.0 的一个特性;但是,Titan 1.0 不完全支持 Hadoop 2.0(请参阅下面的引用),因此这可能会导致您看到的问题。

有些人已经分叉了 Titan 1.0 以添加对 TinkerPop 3.1 的支持,从而增加了对 Hadoop 2.x 的支持,例如,请参阅 this GitHub repo。还有一个 Titan bugdiscussion on the thinkaurelius@ mailing list 具有类似的主题,您可能会发现它们很有用,其中一篇文章引用了该分支。

作为使用将 Titan 升级到 3.1.x 的 Titan 1.0 分支的替代方案,您还可以考虑未发布的 Titan 1.1 branch,它依赖于 TinkerPop 3.1.1-incubating,因此可能适合与 Hadoop 2 一起使用。 x 和纱线。 Titan 1.1.0-SNAPSHOT 可能对你有用;见artifacts on Sonatype

这是来自 Titan wiki 的信息,其中解释了 Titan 1.0 支持哪些 TinkerPop 和 Hadoop 版本:

Titan 1.0.0 本身与 Hadoop 1 和 2 兼容,但 TinkerPop 的 hadoop-gremlin 需要 Hadoop 1。hadoop-gremlin 包含图形计算机实现,用于在 Spark 和 Giraph 上运行遍历等。

这将在以后的 TinkerPop 版本中发生变化。 Titan 1.0.0 依赖于 TinkerPop 3.0.1 孵化。但是,已宣布 TinkerPop 3.1.0 版本支持 Hadoop 2:https://groups.google.com/d/msg/gremlin-users/VB5D61L-xm8/_0MKqcTdAQAJ

一旦 TinkerPop 3.1.0 发布,后续的 Titan 可以恢复完整的 Hadoop 2 支持。如果这样做没有痛苦,将保留对 Hadoop 1 的支持;如果它引发冲突,那么它可能会被丢弃。

但是,对于带有 TinkerPop 3.0.1-incubating 的 Titan 1.0.0,情况正好相反:由于 hadoop-gremlin,zipfile 分发中只有 Hadoop 1 可以完全支持,而 Hadoop 2 支持仅在以下情况下提供可以避免围绕 hadoop-gremlin 的冲突。 Hadoop 1 zipfile 提供了其 Hadoop 2 对应的所有功能,除了它缺少 titan-solr 并且无法与 Hadoop 2 集群(通常包括在 Hadoop 2 之上运行的 HBase 集群)通信。与 Hadoop 1 对应的文件相比,Hadoop 2 zipfile 缺少以下功能:

  • Hadoop 2 zipfile 缺少 titan-hadoop 和 hadoop-gremlin
  • Hadoop 2 zipfile 缺少 MapReduceIndexJobs
  • Hadoop 2 zipfile 的测试不如 Hadoop 1 zipfile 好;其他位可能已损坏但尚未被发现

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    相关资源
    最近更新 更多