1. 程式人生 > >HDFS Java API配置使用者(遠端使用者)

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 ↩︎