簡體   English   中英

HDFS start-all.sh(由root用戶或非root用戶使用)

[英]HDFS start-all.sh by root or non-root user

我正在學習Hadoop,並且想嘗試偽分布式操作

當我嘗試使用start-all.sh啟動Hadoop守護程序時,應該使用像foo-user這樣的非root用戶還是使用root。

使用root沒問題,但是,我對此有點擔心。

它使用非root用戶foo-user抱怨它沒有文件權限

/var/run/hadoop/hadoop-foo-user-namenode.pid: permission denied
/var/run/hadoop/hadoop-foo-user-tasktracker-foohost.pid: permission denied

它試圖在目錄/var/run/hadoop創建這兩個文件

我嘗試了vim /var/run/hadoop/testfile ,但無法保存。 因此,事實證明foo用戶沒有權限在/var/run/hadoop進行寫入

我檢查了/var/run/hadoop的許可

drwxrwxr-x root hadoop 4096 Feb 8 23:42 hadoop

foo-user在hadoop組中,因此應該對/var/run/hadoop具有寫權限。 實際上,在那里還創建了其他一些id文件,例如... jobtracker.pid

那么我應該將root用作start-all.sh還是權限有問題(我很困惑)?

不建議以Hadoop為根啟動,以下引自Yahoo的Hadoop教程:

擁有Hadoop實例的用戶將需要具有對這些目錄中每個目錄的讀寫權限。 並非所有用戶都有權訪問這些目錄。 適當地使用chmod設置權限。 在大型環境中,建議您在每個節點上創建一個名為“ hadoop”的用戶,以明確擁有和運行Hadoop任務。 對於單個人的機器,以您自己的用戶名運行Hadoop是完全可以接受的。 不建議您以超級用戶身份運行Hadoop。

即使foo-user在Linux文件系統中的hadoop組中,您仍然需要確保foo-user也是HDFS中的組成員(默認情況下,該組稱為supergroup ),您將看到該組是什么當你做hadoop fs -ls path_to_your_data

組以及用戶都需要躲藏。 這里您有:

drwxrwxr-x root hadoop 4096 Feb 8 23:42 hadoop

因此,將根目錄更改為hadoop(當前,我無法訪問任何linux計算機,因此我無法說出確切的命令),然后確保自己hadoop用戶能夠在/var/run/hadoop創建文件和目錄。 我強烈建議以非root用戶身份運行它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM