如何简单地将spark jar部署到远程hadoop集群?

时间:2016-11-03 12:53:06

标签: java scala hadoop apache-spark

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. spark-yarn包添加到您的项目依赖项(可以标记为provided
  2. 将具有hadoop配置的目录(HADOOP_CONF_DIR)添加到项目类路径
  3. 将火花装配罐复制到HDFS
  4. 然后使用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是安全部署,则还需要

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

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