我在awsec2中有hadoop集群设置,但是我的开发设置(spark)在本地windows系统中。当我尝试连接aws hive thrift服务器时,我能够连接,但在尝试从本地spark配置提交作业时,它显示一些连接被拒绝的错误。请注意,在windows中,我的用户名与aws服务器中运行hadoop生态系统的用户名不同。有人能解释一下在这个设置中底层系统是如何工作的吗?
1) 当我从本地spark向hive thrift提交作业时,如果该作业与任何mr作业关联,asw hive安装程序将使用其自己的标识提交该作业nn,或者将我的spark安装程序标识继续。
2) 在我的配置中,我是否需要在本地使用与aws中hadoop集群相同的用户名运行spark?
3) 我是否还需要配置ssl来验证本地系统?
请注意,我的本地系统不是hadoop集群的一部分,也不能包含在aws hadoop集群中。
请让我知道什么将是我的hadoop集群在aws和spark在我的本地服务器上运行的环境的实际设置。
1条答案
按热度按时间oalqel3c1#
为了简化问题,您可以自由地在本地编译代码,生成一个uber/shaded jar,scp到任意位置
spark-client
在aws中,然后运行spark-submit --master yarn --class <classname> <jar-file>
.但是,如果您只想在本地触发ec2,那么可以通过编程方式设置一些属性。
spark提交Yarn模式hadoop\u conf\u dir内容
或者,正如那篇文章中提到的,最好的方法是从
HADOOP_CONF_DIR
,并将它们复制到应用程序的类路径中。这是典型的src/main/resources
对于java/scala应用程序。不确定python、r或ssl配置。
是的,您需要为所有节点上的本地windows用户名添加一个远程用户帐户。这就是spark执行器处理用户模拟的方式。