Following is the sample java program to take the advantage of Hadoop UserGroupInfomation to perform a simple authentication by impersonating a user.
Compile and Run this code
import org.apache.hadoop.conf.*; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileStatus; public class SimpleSecurity { public static void main(String args[]) { try { UserGroupInformation ugi = UserGroupInformation.createRemoteUser("rsingh"); ugi.doAs(new PrivilegedExceptionAction<Void>() { public Void run() throws Exception { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "maprfs:///"); conf.set("hadoop.job.ugi", "rsingh"); FileSystem fs = FileSystem.get(conf); fs.createNewFile(new Path("/user/rsingh/test")); FileStatus[] status = fs.listStatus(new Path("/user/rsingh")); for(int i=0;i<status.length;i++){ System.out.println(status[i].getPath()); } return null; } }); } catch (Exception e) { e.printStackTrace(); } } }
Compile and Run this code
javac -cp `hadoop classpath` SimpleSecurity.java ava -cp .:`hadoop classpath` SimpleSecurity 16/02/17 03:08:17 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 16/02/17 03:08:18 INFO fs.MapRFileSystem: User root is impersonating user rsingh maprfs:///user/rsingh/test
No comments:
Post a Comment