访问Spark集群HDFS服务
在一些场景下,需要打开Spark集群的HDFS端口
- 注意:hdfs端口打开后,因误操作hdfs导致的数据丢失等问题客户自身承担,客户需要对hdfs的操作比较了解。
访问限制
- 目前支持的是 同VPC内的ECS 访问Spark HDFS,暂时不支持公网访问。
- 请将同VPC的ECS实例ip添加到Spark实例的白名单列表中,具体方法可以参考:https://help.aliyun.com/document_detail/50504.html?spm=a2c4g.11186623.6.664.2f286eb15OHtTJ
开通HDFS端口
- 首先联系
云HBase答疑
(钉钉号),开通HDFS( 由于hdfs的开放可能造成用户的恶意攻击,引起集群不稳定甚至造成破坏。因此此功能暂时不直接开放给用户,当用户特别需要的情况下,我们通过云HBase答疑后台开通,随后客户使用完成,再关闭)
Hadoop客户端配置
- Hadoop官网下载client:https://hadoop.apache.org/releases.html 建议下载2.7.x版本;
- 创建一个hadoop客户端配置目录conf(如果使用客户端已存在这个目录则不需要另行创建);
添加以下两个hdfs配置到hadoop客户端conf目录(实例id需要替换为实际实例id);
- core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://${实例id}</value>
</property>
</configuration>
- hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>${实例id}</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.${实例id}</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.${实例id}</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.http-address.${实例id}.nn1</name>
<value>${实例id}-master1-001.spark.rds.aliyuncs.com:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.${实例id}.nn2</name>
<value>${实例id}-master2-001.spark.rds.aliyuncs.com:50070</value>
</property>
<property>
<name>dfs.ha.namenodes.${实例id}</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.${实例id}.nn1</name>
<value>${实例id}-master1-001.spark.rds.aliyuncs.com:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.${实例id}.nn2</name>
<value>${实例id}-master2-001.spark.rds.aliyuncs.com:8020</value>
</property>
</configuration>
- core-site.xml
实例ID查看:
添加conf路径到hadoop客户端classpath中
hadoop-env.sh添加或修改行:export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:"hadoop conf路径"
添加HADOOP_CONF_DIR变量到系统中
export HADOOP_CONF_DIR="hadoop conf路径"
将该配置加入到系统默认加载的配置文件中,如${HOME}/.bashrc或${HOME}/.bash_profile,然后source一下配置文件
验证hdfs端口能否正常访问
echo "hdfs port test" >/tmp/test
hadoop dfs -put /tmp/test /
hadoop dfs -cat /test
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论