
# HDFS应用开发简介
#### HDFS简介
HDFS（Hadoop Distributed File System）是一个适合运行在通用硬件之上，具备高度容错特性，支持高吞吐量数据访问的分布式文件系统，非常适合大规模数据集应用。
HDFS适用于如下场景：
- 处理海量数据（TB或PB级别以上）
- 需要很高的吞吐量
- 需要高可靠性
- 需要很好的可扩展能力
 
#### HDFS开发接口简介
HDFS支持使用Java语言进行程序开发，具体的API接口内容请参考[HDFS Java API接口介绍](https://support.huaweicloud.com/devg3-mrs/mrs_07_090034.html)。
#### HDFS常用概念
- Colocation 同分布（Colocation）功能是将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。HDFS文件同分布的特性是，将那些需进行关联操作的文件存放在相同的数据节点上，在进行关联操作计算时，避免了到别的数据节点上获取数据的动作，大大降低了网络带宽的占用。
  
- Client HDFS Client主要包括五种方式：JAVA API、C API、Shell、HTTP REST API、WEB UI五种方式，可参考[常用API介绍](https://support.huaweicloud.com/devg3-mrs/mrs_07_090033.html)、[HDFS Shell命令介绍](https://support.huaweicloud.com/devg3-mrs/mrs_07_090037.html)。
  - JAVA API 提供HDFS文件系统的应用接口，本开发指南主要介绍如何使用Java API进行HDFS文件系统的应用开发。
    
  
  - C API 提供HDFS文件系统的应用接口，使用C语言开发的用户可参考C接口的描述进行应用开发。
    
  
  - Shell 提供shell命令完成HDFS文件系统的基本操作。
    
  
  - HTTP REST API 提供除Shell、Java API和C API以外的其他接口，可通过此接口监控HDFS状态等信息。
    
  
  - WEB UI 提供Web可视化组件管理界面。
    
   
- keytab文件 存放用户信息的密钥文件，应用程序采用此密钥文件在组件中进行API方式认证。
  
 
