【问题标题】:What to choose yarn-cluster or yarn-client for a reporting platform?为报告平台选择什么纱线集群或纱线客户端?
【发布时间】:2016-02-21 08:31:20
【问题描述】:

我打算使用现有数据开发一个报告平台。我有一个现有的 RDBMS,它有大量的记录。所以我正在使用。 (Hadoop 2.7, Spark, Hive, JasperReports, Scoop - Architecuture)

  • Scoop - 将数据从 RDBMS 提取到 Hadoop
  • Hadoop - 存储平台
  • Hive - 数据仓库
  • Spark - 由于 Hive 更像是批处理,Hive 上的 Spark 将加快处理速度
  • JasperReports - 生成报告。

鉴于我已经阅读了以下内容

我应该使用哪种模式?为什么?决定基于什么?

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

    向 Danier Darabos 回答添加更多信息:除了托管应用程序/故障转移和驱动程序运行的位置(yarn-cluster 模式下的 Application Master 或yarn-client 模式下的 Client,其他功能不变。但是yarn-client模式支持spark-shell,不像yarn-cluster模式。

    看看这个article,了解在各种模式下运行 Spark 应用程序之间的区别 - YARN 集群、YARN 客户端和 Spark 独立模式

    在考虑所有选项的标准后,做出经过深思熟虑的决定。

    【讨论】:

    • 这是否意味着如果我运行 YARN 集群,我无法在 Spark 上运行 Hive?
    • 从这篇文章中可以看出cloudera在yarn cluster模式下支持hive:cloudera.com/content/www/en-us/documentation/enterprise/5-3-x/…。但 Spark Shell 可用于多种用途
    • 我没听明白,我不能在 YARN 集群中在 Spark 上运行 Hive 吗?
    • 你可以在 spark 集群中运行 hive。
    【解决方案2】:

    决定是您是否希望您的应用程序作为 YARN 应用程序运行。

    非 YARN 应用程序(在 yarn-client 模式下获得)更简单。它是一个经典的 Linux 应用程序,您可以像启动任何应用程序一样启动它,并且它可以像任何应用程序一样在该机器上运行。

    YARN 应用程序(您在yarn-cluster 模式下获得)由 YARN 管理。它可以在 YARN 决定安装的任何机器上运行。如果它死了,YARN 将重新启动它,可能在另一台机器上。它更健壮(例如,如果机器死机,它将重新启动),但代价是复杂性(例如,您没有应用程序的固定 IP 地址)。

    一开始我会选择yarn-client。如果您发现需要它提供的功能,您可以稍后切换到yarn-cluster

    【讨论】:

    • 感谢您的信息。考虑到我的应用程序的性质,什么是最合适的
    • 鉴于您在链接问题中的描述,我认为您将长期受益于yarn-cluster 模式。
    • 最后一个问题,你能解释一下为什么吗?你这样想的原因是什么?
    • 在链接的问题中你写“我想支持故障转移”。所以我猜你不希望应用程序在单台机器出现故障时停机。所以你需要 YARN,所以在这种情况下它将在另一个节点上重新启动应用程序。
    猜你喜欢
    • 2021-10-31
    • 2015-09-03
    • 2015-10-22
    • 2014-01-14
    • 2020-04-03
    • 2020-10-11
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多