【大数据】HDFS Java API配置用户(远程用户)

2018.10.26

文章目录

    • 前言
    • 方法

前言

某项目使用HDFS Java API操作HDFS,但在本地机器运行单元测试时发现会出现permission denied的问题,原因是该单元测试是直接操作HDFS集群,而本地运行单测时默认会使用本地机器的登录用户去操作HDFS。为了保证单测在不同机器上运行结果一致,就需要在配置HDFS时设置集群环境中的远程用户。

方法

参考Hadoop Java API Doc1,使用UserGroupInformation创建一个远程用户:

UserGroupInformation ugi = UserGroupInformation.createRemoteUser('hdfsUser');
try {
	ugi.doAs(new PrivilegedExceptionAction() {
		public Void run() throws Exception {
			try {
				Configuration conf = new Configuration();
				conf.set("fs.defaultFS", "http://remoteServerIP");
				conf.set("hadoop.job.ugi", "hdfsUser");
				FileSystem fs = FileSystem.get(conf);
				// ...
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	});
} catch (Exception e) {
	e.printStackTrace();
}

  1. Hadoop Java Doc ↩︎

你可能感兴趣的:(Hadoop,Java,大数据)