安装文件系统SDK

本文档主要介绍文件存储 HDFS 版文件系统SDK的安装及使用方式。

前提条件

  • 已创建文件存储 HDFS 版文件系统并添加挂载点。具体操作,请参见创建文件系统添加挂载点

  • 已为ECS实例安装JDK,且JDK版本不低于1.8。

背景信息

本文以hadoop-mapreduce-examples为例,介绍文件系统SDK的使用方式。其中MapReduce以伪分布式方式运行。有关MapReduce的伪分布方式,请参见Apache Hadoop

配置Hadoop

本节以Hadoop 2.7.2版本为例,介绍如何配置Hadoop。

  1. 下载Hadoop,建议版本不低于2.7.2。

  2. 执行以下命令,解压Hadoop压缩包。

    tar -zxf hadoop-2.7.2.tar.gz
  3. 执行以下命令,设置Hadoop工作环境变量。

    export HADOOP_HOME=yourWorkingDir/hadoop-2.7.2
  4. 执行cd hadoop-2.7.2命令,进入Hadoop目录。

  5. 配置hadoop-env.sh文件。

    1. 执行以下命令,打开hadoop-env.sh文件。

      vim etc/hadoop/hadoop-env.sh
    2. 配置JAVA_HOME

      # ${JAVA_HOME}为您ECS的Java JDK的路径,请根据实际路径进行替换。
      export JAVA_HOME=${JAVA_HOME}
  6. 配置core-site.xml文件。core-site.xml文件中需要修改的内容如下所示。

    1. 执行以下命令,打开core-site.xml文件。

      vim etc/hadoop/core-site.xml
    2. 在core-site.xml文件中,配置如下信息。

      <property>
           <name>fs.defaultFS</name>
           <value>dfs://f-xxxxxxxx.cn-xxxxx.dfs.aliyuncs.com: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>
      说明
      • f-xxxxxxxx.cn-xxxxx.dfs.aliyuncs.com文件存储 HDFS 版挂载点地址,请根据实际值替换。

      • core-site.xml的内容需要同步到所有依赖hadoop-common的节点上。

部署依赖

  1. 下载最新的文件存储 HDFS 版的文件系统Java SDK

  2. 将下载的SDK拷贝至Hadoop生态系统组件的CLASSPATH上。

    推荐将其部署到hadoop-common-x.y.z.jar所在的目录内,并复制到所有Hadoop节点。对于MapReduce组件,该目录为${HADOOP_HOME}/share/hadoop/hdfs,命令示例如下。

    cp aliyun-sdk-dfs-x.y.z.jar ${HADOOP_HOME}/share/hadoop/hdfs

    其中,x.y.z为文件系统SDK的版本号,请根据实际版本号替换。

验证安装

请执行以下步骤验证安装。

  1. 准备数据。

    1. 运行以下命令创建目录。

      ${HADOOP_HOME}/bin/hadoop fs -mkdir -p inputDir

    2. 运行以下命令上传文件(例如,上传a.txt文件)。

      ${HADOOP_HOME}/bin/hadoop fs -put a.txt inputDir/
  2. 重启YARN服务。

    1. 关闭YARN服务。

      ${HADOOP_HOME}/sbin/stop-yarn.sh
    2. 开启YARN服务。

      ${HADOOP_HOME}/sbin/start-yarn.sh
  3. 执行样例测试。

    • WordCount样例

      ${HADOOP_HOME}/bin/hadoop jar \
      ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount \
      inputDir outputDir
    • Grep样例

      ${HADOOP_HOME}/bin/hadoop jar \
      ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep \
      inputDir outputDirGrep "the"

后续步骤

关于通过Hadoop FileSystem API接口方式使用文件存储 HDFS 版文件系统的操作示例,请参见SDK示例