PySpark新手求助:通过Linux服务器用spark-submit连接远程CDP集群
使用spark-submit连接远程CDP Hadoop集群的命令示例
以下是适配CDP集群的spark-submit基础命令,可根据实际环境调整参数:
spark-submit \ --master yarn \ --deploy-mode client \ --conf spark.hadoop.fs.defaultFS=hdfs://<CDP_NameNode地址>:<端口> \ --conf spark.yarn.resourcemanager.address=<CDP_ResourceManager地址>:8032 \ --conf spark.yarn.resourcemanager.webapp.address=<CDP_ResourceManager地址>:8088 \ --conf spark.hadoop.yarn.resourcemanager.scheduler.address=<CDP_ResourceManager地址>:8030 \ --py-files <依赖Python包路径(可选)> \ <你的PySpark脚本路径>
参数说明
--master yarn:指定Spark基于CDP的YARN资源管理器运行--deploy-mode client:驱动程序在本地Linux服务器执行,计算任务在CDP集群节点运行;若需驱动在集群节点运行,改为cluster模式spark.hadoop.fs.defaultFS:配置CDP集群HDFS的NameNode地址,默认端口为8020spark.yarn.resourcemanager.address:CDP集群ResourceManager的服务地址,默认端口8032spark.yarn.resourcemanager.webapp.address:ResourceManager的WebUI地址,默认端口8088spark.hadoop.yarn.resourcemanager.scheduler.address:ResourceManager调度器地址,默认端口8030--py-files:若脚本依赖额外Python模块,可将其打包为.zip/.egg文件后通过此参数上传至集群
额外配置(按需添加)
Kerberos认证场景
如果CDP集群开启Kerberos认证,需追加以下配置:
--conf spark.security.credentials.hive.enabled=true \ --conf spark.hadoop.security.authentication=kerberos \ --conf spark.hadoop.hive.metastore.sasl.enabled=true \ --principal <你的Kerberos主体名> \ --keytab <本地Kerberos密钥表文件路径>
访问Hive元数据场景
若需在PySpark中操作Hive表,需添加Hive相关配置:
--conf spark.sql.catalogImplementation=hive \ --conf spark.hadoop.hive.metastore.uris=thrift://<CDP_HiveMetastore地址>:9083
注意事项
- 确保本地Linux服务器能连通CDP集群的所有必要端口(NameNode、ResourceManager等),可通过
nc -zv <地址> <端口>测试连通性 - 本地Spark版本尽量与CDP集群的Spark版本保持一致,避免兼容性问题
内容的提问来源于stack exchange,提问作者Sakib Sakharkar
相关产品推荐
相关产品推荐

