使用AWS Hadoop集群设置进行Spark作业提交

时间:2017-08-28 07:06:25

标签: hadoop apache-spark amazon-ec2 hive

我在AWS EC2中设置了hadoop群集,但我的开发设置(spark)位于本地Windows系统中。当我尝试连接AWS Hive thrift服务器时,我能够连接,但是当尝试从我的本地spark配置提交作业时,它显示一些连接被拒绝错误。请注意,在Windows中,我的用户名与AWS服务器中运行Hadoop eco系统的用户名不同。任何人都可以解释一下底层系统在这个设置中是如何工作的吗?

1)当我从我当地的Spark向HIVE节俭提交工作时,如果它与任何MR工作相关联,ASW Hive设置将以其自己的身份提交该工作NN,否则它将继承我的火花设置身份。

2)在我的配置中,我是否需要在本地运行spark,其用户名与AWS中的hadoop集群相同?

3)我是否还需要配置SSL来验证我的本地系统?

请注意,我的本地系统不是hadoop群集的一部分,我也不能包含在AWS Hadoop群集中。

请让我知道我的hadoop群集在AWS中的环境的实际设置是什么,并且我的本地运行了spark。

1 个答案:

答案 0 :(得分:0)

为了简化问题,您可以在本地编译代码,为AWS中的任何spark-client生成超级/阴影JAR,SCP,然后运行spark-submit --master yarn --class <classname> <jar-file>

但是,如果您想在本地针对EC2进行Spark,那么您可以通过编程方式设置一些属性。

Spark submit YARN mode HADOOP_CONF_DIR contents

或者,如该帖子所述,最好的方法是从HADOOP_CONF_DIR获取群集的XML文件,并将它们复制到应用程序的类路径中。对于Java / Scala应用程序,这通常是src/main/resources

不确定Python,R或SSL配置。

是的,您需要在所有节点上为本地Windows用户名添加远程用户帐户。这就是Spark执行者将如何处理用户模拟的方式。