1. 程式人生 > >利用 Hadoop FileSystem 和 FsPermission mkdirs 方法建立目錄 實現HDFS操作

利用 Hadoop FileSystem 和 FsPermission mkdirs 方法建立目錄 實現HDFS操作

Hadoop 版本 2.7.0

package com.feng.test.hdfs.filesystem;

import java.io.IOException;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.permission.FsAction;
import org.apache.hadoop.fs.permission.FsPermission;

/**
 * 建立目錄並設定許可權
 * 遠端呼叫機器 需要 liunx 修改 /etc/hosts 新增 10.11.12.4 master
 * @author
feng * */
public class CreateDir { public static void main(String[] args) { FileSystem hdfs = null; try{ Configuration config = new Configuration(); // 程式配置 config.set("fs.default.name", "hdfs://master:9000"); hdfs = FileSystem.get(new
URI("hdfs://master:9000"), config, "feng"); Path path = new Path("/feng/tmp/"+System.currentTimeMillis()); if(hdfs.exists(path)){ System.out.println("There is already exist " + path); }else{ FsPermission filePermission = null
; filePermission = new FsPermission( FsAction.ALL, //user action FsAction.ALL, //group action FsAction.READ);//other action //建立目錄 不設定許可權,預設為當前hdfs伺服器啟動使用者 //boolean success = hdfs.mkdirs(path, null); boolean success = hdfs.mkdirs(path, filePermission); System.out.println(path + " is success " + success); } }catch(Exception e){ e.printStackTrace(); }finally{ if(hdfs != null){ try { hdfs.closeAll(); } catch (Exception e) { e.printStackTrace(); } } } } }