【问题标题】:How simple deploy spark jar to remote hadoop cluster?将 spark jar 部署到远程 hadoop 集群有多简单?
【发布时间】:2016-11-03 12:53:05
【问题描述】:

我有 Hadoop 集群 Cloudera CDH 5.2 和 Apache Spark 1.5.0。

我可以使用集群的 YARN、Spark 和 HDFS 从 IntelliJ IDEA 或本地 PC 运行我的应用程序吗?

或者我应该通过 ftp 将 jar 发送到主节点,然后通过 spark-submit 运行它?

【问题讨论】:

    标签: java scala hadoop apache-spark


    【解决方案1】:

    是的,如果您按照以下步骤操作,您可以直接从 IDE 运行您的作业:

    1. spark-yarn包添加到你的项目依赖中(可以标记为provided
    2. 将带有 hadoop 配置 (HADOOP_CONF_DIR) 的目录添加到项目类路径中
    3. 将 spark 组件 jar 复制到 HDFS

    然后使用 config 在您的应用程序中配置 spark 上下文:

    SparkConf sparkConfig = new SparkConf().
        .setMaster("yarn-client")
        .set("spark.yarn.queue", "if_you_are_using_scheduler")
        .set("spark.yarn.jar", "hdfs:///path/to/assembly/on/hdfs");
    

    如果您的 Hadoop 是安全部署的,那么还需要

    • 将 JRE 更改为启用 JCE 的 JRE
    • krb5.conf添加到java参数(-Djava.security.krb5.conf=/path/to/local/krb5.conf
    • 在您的环境中调用kinit

    我前段时间也在 CDH 上的 Spark 1.2.0 上测试了这个解决方案,但它应该可以在 1.5 上运行。请记住,这种方法使您的本地计算机成为 spark 驱动程序,因此请注意驱动程序和执行程序之间的一些防火墙问题 - 您的本地计算机应该可以从 hadoop 节点访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      相关资源
      最近更新 更多