创建文件系统并添加挂载点后,您可以通过挂载点挂载文件存储HDFS实例。

前提条件

对于ECS实例来说,能否通过一个挂载点访问文件系统取决于以下的条件:
  • 若挂载点网络类型是专有网络,则只有同一VPC内的ECS实例能够挂载,并且挂载点所绑定的权限组中有一条规则的授权地址能够与ECS实例的VPC IP地址匹配。
  • HDFS协议挂载前,您需要确保ECS中已经安装了Java 1.8。

操作步骤

  1. 在一个节点上将以下内容添加到core-site.xml文件,并同步到所有依赖hadoop-common的节点上:
    <property>
         <name>fs.defaultFS</name>
         <value>dfs://DfsMountpointDomainName:10290</value>
    </property>
    <property>
         <name>fs.dfs.impl</name>
         <value>com.alibaba.dfs.DistributedFileSystem</value>
    </property>
    <property>
         <name>fs.AbstractFileSystem.dfs.impl</name>
         <value>com.alibaba.dfs.DFS</value>
    </property>
    					
    说明
    • 如果fs.defaultFS属性的<value>值中包含hdfs://,请将其相应替换为dfs://。
    • 请将MountpointDomainName替换为具体文件存储HDFS实例的挂载地址,如xxx.cn-hangzhou.dfs.aliyuncs.com。
    • core-site.xml的内容需要同步到所有依赖hadoop-common的节点上。
  2. 您可以下载文件存储HDFS文件系统SDK的JAR文件aliyun-sdk-dfs-x.y.z.jar,将其部署在Hadoop生态系统组件的CLASSPATH 上,推荐将其部署到hadoop-common-X.YZ.jar所在的目录内。
    说明 Hadoop版本不低于2.7.2。
    例如,对于Spark 2.3.0,解压后的目录结构如下图:

    需要把aliyun-sdk-dfs-x.y.z.jar拷贝到jars目录。

  3. core-site.xml中配置参数(如io.file.buffer.sizedfs.connection.count等),并同步到所有依赖hadoop-common的节点上。
    <property>
         <name>io.file.buffer.size</name>
         <value>4194304</value>
         <description>To achieve high throughput, no less than 1MB, no more than 8MB</description>
    </property>
    <property>
         <name>dfs.connection.count</name> 
         <value>1</value>
         <description>If multi threads in the same process will read/write to DFS, set to count of threads</description>
    </property>
  4. 使用hadoop fs命令行工具,运行hadoop fs -ls /命令进行验证,如下图所示:
    如未报错,则部署成功。