
# 初始化HDFS
#### 功能简介
在使用HDFS提供的API之前，需要先进行HDFS初始化操作。过程为：
1. 加载HDFS服务配置文件。
2. 实例化Filesystem。
 
#### 配置文件介绍
登录HDFS时会使用到如[表1]所示的配置文件。这些文件均已导入到"hadoop-examples"工程的"conf"目录。
 表1配置文件 
| **文件名称**      | **作用**      |
|:---|:---|
| core-site.xml | 配置HDFS详细参数。 |
| hdfs-site.xml | 配置HDFS详细参数。 |
   
![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
"conf"目录下的"log4j.properties"文件，客户可根据自己的需要进行配置。
#### 代码样例
如下是代码片段，详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。
在Linux客户端运行应用和在Windows环境下运行应用的初始化代码相同，代码样例如下所示。
```
//初始化
confLoad();
 // 创建一个用例
 HdfsExample hdfs_examples = new HdfsExample("/user/hdfs-examples", "test.txt");
 /**
  * 
  * 如果程序运行在Linux上，则需要core-site.xml、hdfs-site.xml的路径修改
  * 为在Linux下客户端文件的绝对路径
  *
  * 
  */  
 private static void confLoad() throws IOException {
   conf = new Configuration();
   // conf file
   conf.addResource(new Path(PATH_TO_HDFS_SITE_XML));
   conf.addResource(new Path(PATH_TO_CORE_SITE_XML));
   // conf.addResource(new Path(PATH_TO_SMALL_SITE_XML));
 }
 /**
  *创建用例
  */
 public HdfsExample(String path, String fileName) throws IOException  {
   this.DEST_PATH = path;
   this.FILE_NAME = fileName;
   instanceBuild();
 }
 private void instanceBuild() throws IOException {
   fSystem = FileSystem.get(conf);
 }
```
![](https://support.huaweicloud.com/devg3-mrs/public_sys-resources/note_3.0-zh-cn.png)
- （可选）运行此样例代码需要设置运行用户，若需运行Colocation相关操作的样例代码，则此用户需属supergroup用户组。设置运行用户有两种方式，添加环境变量HADOOP_USER_NAME或者修改代码。 添加环境变量HADOOP_USER_NAME：参考[调测HDFS应用](https://support.huaweicloud.com/devg3-mrs/mrs_07_300023.html)章节。
  修改代码：在没有设置HADOOP_USER_NAME的场景下，直接修改代码中的USER。如下所示。
  ```
  System.setProperty("HADOOP_USER_NAME", USER);
  ```
  
 
