HDFS(Hadoop Distributed File System)是一个适合运行在通用硬件上的Hadoop分布式文件系统。

背景信息

HDFS由NameNode、DataNode和Client三部分组成。NameNode部署在EMR Header节点上,负责管理文件元数据和数据块信息。DataNode 部署在EMR Core节点上,负责管理节点上的数据块。Client部署在EMR所有节点上(Header、Core、Task和Gateway)。

HDFS架构图如下:HDFS

EMR HDFS优势

E-MapReduce集群中HDFS的优势如下:
  • 高可用集群可以自动开启HDFS HA部署。
  • 更便捷的运维。例如,支持通过控制台方式进行节点扩容、DataNode下线(Decommission)、节点平衡(Balancer)和滚动重启等操作。
  • APM监控报警,可以对各项指标进行监控和智能报警。
  • 支持HDFS Federation。

使用HDFS客户端

  1. 通过SSH方式连接集群。

    连接详情,请参见使用SSH连接主节点

  2. 直接执行HDFS Shell命令。例如:
    hdfs dfs -ls /
    返回如下类似信息:
    Found 7 items
    drwxr-xr-x   - hadoop    hadoop          0 2021-03-13 07:54 /apps
    drwxrwxrwx   - flowagent hadoop          0 2021-03-13 07:53 /emr-flow
    drwxr-x--x   - root      hadoop          0 2021-03-13 07:53 /emr-sparksql-udf
    drwxr-x--x   - hadoop    hadoop          0 2021-03-14 07:34 /flink
    drwxr-x--x   - hadoop    hadoop          0 2021-03-13 07:55 /spark-history
    drwxrwxrwt   - root      hadoop          0 2021-03-17 11:42 /tmp
    drwxr-x--t   - hadoop    hadoop          0 2021-03-13 07:55 /user

    针对非高可用集群,您可以通过hdfs://emr-header-1.cluster-xxxx:9000/命令使用HDFS客户端。高可用集群,您可以通过hdfs://emr-cluster/命令使用HDFS客户端。