全部产品
云市场

访问Spark集群HDFS服务

更新时间:2019-09-06 10:29:45

在一些场景下,需要打开Spark集群的HDFS端口

  • 注意:hdfs端口打开后,因误操作hdfs导致的数据丢失等问题客户自身承担,客户需要对hdfs的操作比较了解。

访问限制

开通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
      1. <configuration>
      2. <property>
      3. <name>fs.defaultFS</name>
      4. <value>hdfs://${实例id}</value>
      5. </property>
      6. </configuration>
    • hdfs-site.xml
      1. <configuration>
      2. <property>
      3. <name>dfs.nameservices</name>
      4. <value>${实例id}</value>
      5. </property>
      6. <property>
      7. <name>dfs.client.failover.proxy.provider.${实例id}</name>
      8. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
      9. </property>
      10. <property>
      11. <name>dfs.ha.automatic-failover.enabled.${实例id}</name>
      12. <value>true</value>
      13. </property>
      14. <property>
      15. <name>dfs.namenode.http-address.${实例id}.nn1</name>
      16. <value>${实例id}-master1-001.spark.rds.aliyuncs.com:50070</value>
      17. </property>
      18. <property>
      19. <name>dfs.namenode.http-address.${实例id}.nn2</name>
      20. <value>${实例id}-master2-001.spark.rds.aliyuncs.com:50070</value>
      21. </property>
      22. <property>
      23. <name>dfs.ha.namenodes.${实例id}</name>
      24. <value>nn1,nn2</value>
      25. </property>
      26. <property>
      27. <name>dfs.namenode.rpc-address.${实例id}.nn1</name>
      28. <value>${实例id}-master1-001.spark.rds.aliyuncs.com:8020</value>
      29. </property>
      30. <property>
      31. <name>dfs.namenode.rpc-address.${实例id}.nn2</name>
      32. <value>${实例id}-master2-001.spark.rds.aliyuncs.com:8020</value>
      33. </property>
      34. </configuration>
  • 实例ID查看:spark实例id查看

  • 添加conf路径到hadoop客户端classpath中
    hadoop-env.sh添加或修改行:

    1. export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:"hadoop conf路径"
  • 添加HADOOP_CONF_DIR变量到系统中

    1. export HADOOP_CONF_DIR="hadoop conf路径"

    将该配置加入到系统默认加载的配置文件中,如${HOME}/.bashrc或${HOME}/.bash_profile,然后source一下配置文件

  • 验证hdfs端口能否正常访问

    1. echo "hdfs port test" >/tmp/test
    2. hadoop dfs -put /tmp/test /
    3. hadoop dfs -cat /test