2017-08-28 71 views
0

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

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

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

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

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

请让我知道我的hadoop集群位于AWS并且spark正在我的本地运行的环境的实际设置。

+0

只要将您的本地计算机视为任何“边缘节点”即可。您需要本地的所有Hadoop + Hive XML配置文件。对于Hive,您可以在Spark代码中明确设置'hive.metastore.uris'。 https://stackoverflow.com/questions/31980584/how-to-connect-to-a-hive-metastore-programmatically-in-sparksql#31993754 –

+0

但根据我的理解边缘节点必须是同一集群的一部分,是不是吗?您的意思是在这种情况下,我的本地系统还必须包含在AWS hadoop集群系统中 – Biswajit

+0

边缘节点是网络外围的任何计算机。仅客户端配置文件。没有运行集群服务。不过,您需要为所有服务打开必要的ec2端口。 (NameNode,thrift,Datanode,Spark History Server,ResourceManager等等) –

回答

0

为了简化问题,你可以自由地编译你的代码在本地,产生一个超级/阴影JAR,SCP在AWS任何spark-client,然后运行spark-submit --master yarn --class <classname> <jar-file>。但是,如果您只想在本地Spark对EC2,那么您可以通过编程设置一些属性。

Spark submit YARN mode HADOOP_CONF_DIR contents

另外,如在文章中提到,最好的办法就是从HADOOP_CONF_DIR让你的集群的XML文件,并复制它们在进入你的应用的classpath。对于Java/Scala应用程序,这通常是src/main/resources

不确定关于Python,R或SSL配置。

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