這個(gè)是因?yàn)榇肽矗覀冊(cè)L問hdfs得時(shí)候,默認(rèn)是以windows本機(jī)得用戶去訪問慎宾,這里我的是Dason丐吓,但是在hdfs中,這個(gè)用戶是沒有權(quán)限去訪問對(duì)應(yīng)得/temp目錄得趟据。所以券犁,我們得設(shè)置一下訪問用戶,eclipse中也是如此汹碱,IDEA也是粘衬。
解決方式:
? ??這是因?yàn)楫?dāng)前用戶Dason沒有對(duì)hdfs的寫入權(quán)限. 有幾種方式解決:
1、在系統(tǒng)的環(huán)境變量或java JVM變量里面添加HADOOP_USER_NAME咳促,這個(gè)值具體等于多少看自己的情況稚新,以后會(huì)運(yùn)行HADOOP上的Linux的用戶名(hadoop,如果是CDH有可能是hdfs)跪腹。(修改完重啟eclipse褂删,不然可能不生效)
2、將當(dāng)前系統(tǒng)的帳號(hào)修改為hdfs用戶(CDH默認(rèn)為用戶名hdfs)
3尺迂、使用HDFS的命令行接口修改相應(yīng)目錄的權(quán)限笤妙,hadoop fs -chmod 777 /user,后面的/user是要上傳文件的路徑冒掌,不同的情況可能不一樣噪裕,比如要上傳的文件路徑為hdfs://namenode/user/xxx.doc蹲盘,則這樣的修改可以,如果要上傳的文件路徑為hdfs://namenode/java/xxx.doc膳音,則要修改的為hadoop fs -chmod 777 /java或者h(yuǎn)adoop fs -chmod 777 /召衔,java的那個(gè)需要先在HDFS里面建立Java目錄,后面的這個(gè)是為根目錄調(diào)整權(quán)限祭陷。