MAPREDUCE服务 MRS-初始化HDFS:代码样例

时间:2024-06-19 14:14:15

代码样例

如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsMain类。

在Linux客户端运行应用的初始化代码,代码样例如下所示。
 /**
   * 初始化,获取一个FileSystem实例
   *
   * @throws IOException
   */
  private void init() throws IOException {
    confLoad();
    authentication();
    instanceBuild();
  }
  
  /**
   * 
   * 如果程序运行在Linux上,则需要core-site.xml、hdfs-site.xml的路径,
   * 修改为在Linux下客户端文件的绝对路径。
   * 
   */
  private 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));
   }
  
  /**
   * kerberos security authentication 
   * 如果程序运行在Linux上,则需要krb5.conf和keytab文件的路径,
   * 修改为在Linux下客户端文件的绝对路径。并且需要将样例代码中的keytab文件和principal文件
   * 分别修改为当前用户的keytab文件名和用户名。
   * 
   */
  private void authentication() throws IOException {
    // 安全模式
    if ("kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) {
      System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF);
      LoginUtil.login(PRNCIPAL_NAME, PATH_TO_KEYTAB, PATH_TO_KRB5_CONF, conf);
    }
  }
  
  
  /**
   * build HDFS instance
   */
  private void instanceBuild() throws IOException {
    // get filesystem
    fSystem = FileSystem.get(conf);
  }
support.huaweicloud.com/devg-mrs/mrs_06_0125.html