|
集群以外的機(jī)器如何訪問Hadoop集群,并像集群中提交作業(yè)和傳送數(shù)據(jù)
(1)首先,在機(jī)器上安裝nutch或者h(yuǎn)adoop (2)配置兩個(gè)文件 hadoop-site.xml: <configuration> <property>
<name>fs.default.name</name> <value>hdfs://gc04vm12:9000</value> <description> </description> </property> <property>
<name>mapred.job.tracker</name> <value>gc04vm12:9001</value> <description> </description> </property> </configuration>
(3)這樣便能執(zhí)行命令,查看集群狀態(tài),向集群提交作業(yè)
(4)hdfs中的用戶 使用root登陸而hadoop中沒有創(chuàng)建root用戶時(shí),使用如下命令時(shí),查看到的就不是nutch用戶主目錄 /user/root了 [root@gc03vm12 nutch-1.0]# bin/hadoop dfs -ls 執(zhí)行此命令時(shí),即是列出/user/root(root用戶主目錄)目錄下的文件或目錄 ls: Cannot access .: No such file or directory. 沒有此目錄 [root@gc03vm12 nutch-1.0]# bin/hadoop dfs -ls /
Found 3 items drwxr-xr-x - nutch supergroup 0 2010-05-21 00:42 /tmp drwxr-xr-x - nutch supergroup 0 2010-05-21 00:53 /user drwxr-xr-x - nutch supergroup 0 2010-05-21 00:55 /usr 這個(gè)是什么? [root@gc03vm12 nutch-1.0]# bin/hadoop dfs -mkdir x 主目錄(/user/root)中創(chuàng)建x目錄,提示以下信息
mkdir: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="user":nutch:supergroup:rwxr-xr-x 這是因?yàn)閞oot用戶對(duì)/user/目錄沒有寫權(quán)限(drwxr-xr-x - nutch supergroup 0 2010-05-21 00:53 /user) hdfs中的nutch用戶是啟動(dòng)hadoop集群的這個(gè)用戶,當(dāng)客戶機(jī)中也存在nutch用戶時(shí),登陸后訪問hdfs時(shí),進(jìn)入的是home目錄(/user/nutch)。 hdfs中文件和目錄的權(quán)限類似linux,可以修改其權(quán)限,改變其所屬組 nutch用戶格式化namenode,啟動(dòng)hadoop集群(會(huì)用到nutch用戶的公鑰信息,ssh配置)后,執(zhí)行命令,
[nutch@gc03vm12 nutch-1.0]# bin/hadoop dfs -ls 執(zhí)行此命令時(shí),即是列出/user/nutch(nutch用戶主目錄)目錄下的文件或目錄 ls: Cannot access .: No such file or directory. 因?yàn)闆]有/user/nutch目錄,所以不能訪問,而此時(shí)若創(chuàng)建一個(gè)文件,如使用以下命令 [nutch@gc03vm12 nutch-1.0]# bin/hadoop dfs -mkdir x 則可以順利執(zhí)行,此時(shí)它將創(chuàng)建/user/nutch/x目錄。 而使用root用戶不行,是因?yàn)?root用戶對(duì)/user/目錄沒有寫權(quán)限。 那么如何創(chuàng)建一個(gè)root用戶呢,可以這樣做
超級(jí)用戶nutch在hdfs中創(chuàng)建目錄/user/root,即 bin/hadoop dfs -mkdir /user/root 更改/user/root目錄所屬用戶和組, bin/hadoop dfs -chown -R root:root /user/root (若此處沒有指定組,則默認(rèn)root屬于supergroup組, bin/hadoop dfs -chown -R root /user/root) 這樣就相當(dāng)于在hdfs中創(chuàng)建了用戶root,組root; 用戶權(quán)限和Linux類似,nutch是超級(jí)用戶。
例如nutch在root的home目錄下創(chuàng)建目錄s,則s的權(quán)限如下,屬于nutch,組是root
drwxr-xr-x - nutch root 0 2010-05-21 04:41 /user/root/s root用戶此時(shí)就不能寫s目錄了 [root@gc04vm14 nutch-1.0]# bin/hadoop dfs -mkdir s/x mkdir: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="s":nutch:root:rwxr-xr-x root用戶屬于root組,并且執(zhí)行作業(yè),會(huì)提示錯(cuò)誤,如下 [root@gc03vm12 nutch-1.0]# bin/nutch crawl /user/nutch/urls -dir data2 -depth 5 -topN 8 提示如下錯(cuò)誤 org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="tmp":nutch:supergroup:rwxr-xr-x 這是因?yàn)閞oot用戶對(duì)/tmp目錄(hdfs目錄)沒有寫權(quán)限,因?yàn)樽鳂I(yè)執(zhí)行時(shí),會(huì)在/tmp目錄下生成相應(yīng)的job文件,
/tmp的權(quán)限如下: drwxr-xr-x - nutch supergroup 0 2010-05-21 00:42 /tmp 因此非超級(jí)用戶提交作業(yè)時(shí),用戶問題是一個(gè)很麻煩的問題
注:
hadoop有些命令只能在namenode上執(zhí)行
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zklth/archive/2010/05/25/5618942.aspx
|
|
|