通过HDFS FUSE连接并使用LindormDFS

本章介绍如何使用HDFS FUSE访问LindormDFS。

准备运行环境

  • 安装JDK并设置JAVA_HOME,检查JDK版本:$JAVA_HOME/bin/java -version

    • CentOS/RedHat

      sudo yum install java-1.8.0-openjdk-devel -y
    • Ubuntu

      sudo apt-get update
      sudo apt-get install openjdk-8-jdk -y
  • 安装FUSE库:

    • CentOS/RedHat

      sudo yum install fuse fuse-devel fuse-libs -y
    • Ubuntu

      sudo apt-get update
      sudo apt-get install fuse libfuse-dev -y

下载FUSE客户端

基于开源hadoop-2.7.7版本的FUSE客户端:下载链接

安装FUSE客户端

  1. 解压客户端安装包,并跳转至解压后的目录。

    tar -zxf ldfs-fuse-2.7.tar.gz
    cd ldfs-fuse-2.7
  2. 修改etc/hadoop/hdfs-site.xml文件,hdfs-site.xml文件中需要修改的内容如下所示,其中${实例ID}需要替换为真实的实例ID。

    <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</name>
           <value>true</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.lindorm.rds.aliyuncs.com:8020</value>
        </property>
        <property>
           <name>dfs.namenode.rpc-address.${实例ID}.nn2</name>
           <value>${实例ID}-master2-001.lindorm.rds.aliyuncs.com:8020</value>
        </property>
    </configuration>
  3. 创建挂载目录并授权。

    sudo mkdir /ldfs_fuse
    sudo chown $(whoami):$(whoami) /ldfs_fuse
  4. 挂载至已创建的目录。

    /bin/bash bin/mount_to.sh /ldfs_fuse
  5. 查看FUSE盘。

    df -h
  6. (可选)卸载FUSE盘。

    fusermount -u /ldfs_fuse

常用操作示例

  • 写文件:echo 'test' > /ldfs_fuse/test

  • 读文件:cat /ldfs_fuse/test

  • 删除文件:rm -f /ldfs_fuse/test

重要

HDFS FUSE挂载后的数据盘仅支持顺序写,不支持随机写。

更多操作

FUSE默认文件副本数为3,您可以通过修改配置文件etc/hadoop/hdfs-site.xml来更改默认值。例如以下代码更改副本数为2:

<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
说明

默认值修改后需重新挂载才可生效。