电竞比分网-中国电竞赛事及体育赛事平台

分享

【Hadoop】集群之外的機(jī)器如何連接到集群并與HDFS交互,提交作業(yè)給Hadoop集群 ...

 風(fēng)自向前 2010-08-03
集群以外的機(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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多