Spark访问外部HDFS
在一些场景下,Spark集群需要访问外部集群的HDFS
- 注意:hdfs端口打开后,因误操作hdfs导致的数据丢失等问题客户自身承担,客户需要对hdfs的操作比较了解。
访问限制
- 目前支持的是 同VPC内的Spark 访问外部HDFS,暂时不支持公网访问。
- 请将同VPC的Spark实例ip添加到外部HDFS集群的白名单列表中,具体方法可以参考:https://help.aliyun.com/document_detail/50504.html?spm=a2c4g.11186623.6.664.2f286eb15OHtTJ
开通HDFS端口
- 如果是要访问云HBase或云Spark的HDFS,请联系
云HBase答疑
(钉钉号),开通HDFS( 由于hdfs的开放可能造成用户的恶意攻击,引起集群不稳定甚至造成破坏。因此此功能暂时不直接开放给用户,当用户特别需要的情况下,我们通过云HBase答疑后台开通,随后客户使用完成,再关闭)
作业和会话配置
- 假设Spark计算集群是实例A,待访问的HDFS存储集群是实例B,在创建作业和会话时需要添加以下配置:
--conf spark.hadoop.dfs.nameservices=${A实例id},${B实例id}
--conf spark.hadoop.dfs.client.failover.proxy.provider.${B实例id}=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
--conf spark.hadoop.dfs.ha.automatic-failover.enabled.${B实例id}=true
--conf spark.hadoop.dfs.namenode.http-address.${B实例id}.nn1=${B实例id}-master1-001.spark.rds.aliyuncs.com:50070
--conf spark.hadoop.dfs.namenode.http-address.${B实例id}.nn2=${B实例id}-master2-001.spark.rds.aliyuncs.com:50070
--conf spark.hadoop.dfs.ha.namenodes.${B实例id}=nn1,nn2
--conf spark.hadoop.dfs.namenode.rpc-address.${B实例id}.nn1=${B实例id}-master1-001.spark.rds.aliyuncs.com:8020
--conf spark.hadoop.dfs.namenode.rpc-address.${B实例id}.nn2=${B实例id}-master2-001.spark.rds.aliyuncs.com:8020
实例id查看
配置添加
- 创建作业
- 创建会话
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论