【大數據】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 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章