hadoop 命令操作hdfs 目錄權(quán)限 管理

與其 通過規(guī)章制度讓大家 遵守 某項(xiàng)規(guī)定 神郊,時(shí)而還要擔(dān)驚受怕 總有那么一小嘬人 冒天下之大不韙 以身試法 踐踏 規(guī)定定续,一勞永逸 解決 信任問題的終極辦法 看似有些獨(dú)裁 專制,對(duì)于有特立獨(dú)行思想的刺頭糖埋,最好的根治手段就是閹割。現(xiàn)實(shí)中 用 囚籠 囚禁 犯人,在 計(jì)算機(jī)系統(tǒng)中則是 通過權(quán)限管理 限制每一個(gè)人的操作 范圍磷蛹。

image.png

由于公司的大數(shù)據(jù)平臺(tái) 搭建的比較簡(jiǎn)陋,還要讓 之前根本沒有接觸過 hadoop平臺(tái)的開發(fā) 算法人員使用溪烤,他們的錯(cuò)誤操作 經(jīng)常給你帶來 意外的驚喜和 感動(dòng)的淚水味咳,我心里有十萬個(gè) MMP。檬嘀。槽驶。

所以剛開始就想干脆像 初中小學(xué)那樣寫個(gè)班規(guī)似的 使用規(guī)范吧,但是規(guī)范的約束力是有限的鸳兽,需要大家相互信任掂铐,但是總有人會(huì)錯(cuò)誤操作的風(fēng)險(xiǎn),怎么辦 怎么辦,只能通過強(qiáng)制的方法 解決這個(gè)局面堡纬。
好漢 大部分都是被逼上梁山的聂受,平臺(tái)的演進(jìn)大多也是根據(jù)眼前出現(xiàn)的問題 不斷精益求精的。所以搭建 權(quán)限管理 勢(shì)在必行烤镐。

先簡(jiǎn)單 介紹一下 思想蛋济,其實(shí) 有兩種 方式 ,
一種是配置 ugi 的xml 炮叶,
一種是 直接在 linux 創(chuàng)建相應(yīng)的用戶和組 碗旅,然后把 hdfs 的某一文件夾的操作權(quán)限 賦予 該用戶和組,
第一種侵入性小镜悉,配置簡(jiǎn)單 祟辟,第二種則簡(jiǎn)單粗暴 好操作 但如果有成百上千的hadoop操作用戶 則是一個(gè)不簡(jiǎn)單 的力氣活,最好有一個(gè)腳本可以自動(dòng)化 操作這些侣肄。為了 盡快見效旧困,我選擇了第二種,而且 還要搭配著與我們的hadoop 任務(wù)提交機(jī)器 使用。

我們數(shù)據(jù)算法小組 現(xiàn)在 一共五個(gè)人 稼锅,人少就給每個(gè)人 設(shè)置了一個(gè)賬號(hào) 權(quán)限 吼具,還另外設(shè)置了一個(gè) dev 及guests 的賬號(hào),方便 其他組和 新加入的小伙伴臨時(shí)使用
下面開始操作 了
1.在 hadoop master 的節(jié)點(diǎn) 創(chuàng)建 這些賬戶 矩距,為了這些賬戶好管理拗盒,也要?jiǎng)?chuàng)建一個(gè) 組,組可以先用戶創(chuàng)建 也可以在用戶之后創(chuàng)建

useradd medev && echo da@opo#8N5 | passwd --stdin medev
echo "medev ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
groupadd datadev
usermod -a -G datadev medev
這些命令 需要在 root 用戶下使用

2.登錄到每個(gè)用戶 的shell 中锥债,然后 把 原來 java hadoop path 的環(huán)境變量 粘貼復(fù)制到 新創(chuàng)建的用戶的 ~/.bashrc陡蝇,保存并退出,然后
vi ~/.bashrc

export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export SCALA_HOME=/usr/local/scala
export SQOOP_HOME=/usr/local/sqoop
export PATH=$SQOOP_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/java/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/root/bin:/usr/local/java/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/scala/bin

source ~/.bashrc
【注意哮肚,第二步 我們只給 dev 和guests 兩個(gè)用戶這樣在 Master設(shè)置了登夫,其他個(gè)人賬號(hào)沒有設(shè)置 ,主要是防止這些同事 無意登錄到 Master 節(jié)點(diǎn) 錯(cuò)誤操作允趟,但是 所有新創(chuàng)建的 用戶悼嫉,我們?cè)? 任務(wù)提交機(jī)器都這樣配置了】

3.使用hadoop fs -chown user:group /dirpath ,為 hdfs 上的 用戶分配 目錄操作權(quán)限拼窥,大前提是這樣的原來的日志流目錄還是 hadoop 管理員 hadoop 和組 supergroup 的,在 hdfs根目錄下創(chuàng)建 一個(gè)總的 /outputs目錄蹋凝,dev 用戶 可以操控這個(gè) 目錄 及子目錄鲁纠,然后 其他的個(gè)人賬號(hào),只可以操控 在 /outputs/下的 各自的子目錄集鳍寂,比如 muller 只可以操作
/outputs/mulleroutput改含,整個(gè) /outputs目錄都屬于 該用戶組

hadoop fs -chown -R medev:datadev /Outputs/devoutput

這個(gè)操作需要在 hadoop管理員的身份執(zhí)行

  1. 然后可以在 Master 使用 hadoop fs -put -get -mkdir -rm -r 命令 來測(cè)試,果然都可以實(shí)現(xiàn)目錄權(quán)限的管理,不屬于你的 只有查看 和mapreduce的權(quán)限迄汛,不能創(chuàng)建 不能刪除 不能下載捍壤, 只能在自己的目錄下肆意妄為骤视。
    rm: Permission denied: user=meDev, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x

put: Permission denied: user=medev, access=WRITE, inode="/xial":hadoop:supergroup:drwxr-xr-x

mkdir: Permission denied: user=medev, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x

get: /usr/local/hadoop/part-00000.deflate.COPYING (Permission denied)
5.然后在 hadoop 任務(wù)提交機(jī)器 繼續(xù) 創(chuàng)建同名的用戶 和配置環(huán)境變量 即可,然后測(cè)試 完全沒有壓力

但是 我們還是 太天真了 鹃觉,我們 做好了 hdfs 目錄 權(quán)限管理专酗,卻發(fā)現(xiàn)無法 進(jìn)行 mapreduce了 ,在運(yùn)行 hadoop 自帶的 wordcount 盗扇,也報(bào) 權(quán)限不足祷肯,細(xì)細(xì)的看,發(fā)現(xiàn) 問題的嚴(yán)重性疗隶,獨(dú)自的用戶因?yàn)椴粚儆?supergroup 組佑笋,無法rwx hadoop的根目錄的 /tmp目錄,此目錄 是 放置 map 中間值得目錄斑鼻,難道你忘記了嗎蒋纬,hadoop 在進(jìn)行 mapreduce時(shí),會(huì)把中間結(jié)果保存在硬盤 上坚弱,實(shí)際是hdfs的 /tmp目錄中蜀备,如果 操作用戶 沒有權(quán)限操作 /tmp也是無法進(jìn)行mapReduce的,
17/10/27 19:52:21 INFO client.RMProxy: Connecting to ResourceManager at hadoop-master/194.168.255.155:8032 org.apache.hadoop.security.AccessControlException: Permission denied: user=linkedmeGuests, access=EXECUTE, inode="/tmp/hadoop-yarn":hadoop:supergroup:drwx------
所以 要 把 /tmp 目錄的權(quán)限設(shè)置為 777史汗,單單 /tmp設(shè)置了還不可以琼掠,還要把 其子目錄都要配置為777的權(quán)限,切換到hadoop 管理員操作

hadoop fs -chmod -R 777 /tmp

然后 再運(yùn)行 發(fā)現(xiàn)又失敗了停撞,發(fā)現(xiàn) 對(duì)output的目錄沒有操作權(quán)限瓷蛙,
17/10/27 19:56:30 INFO mapreduce.Job: Job job_1508742787565_0140 running in uber mode : false
17/10/27 19:56:30 INFO mapreduce.Job: map 0% reduce 0%
17/10/27 19:56:30 INFO mapreduce.Job: Job job_1508742787565_0140 failed with state FAILED due to: Job setup failed : org.apache.hadoop.security.AccessControlException: Permission denied: user=meGuests, access=WRITE, inode="/Outputs/DannyOutputs":Danny:datadev:drwxr-xr-x

這個(gè)當(dāng)然了,我們規(guī)定了 每個(gè)賬號(hào)用戶的可以操作的output目錄戈毒,其他別人的目錄都不允許操作艰猬,所以 只要把output 的目錄設(shè)置成自己的output目錄 創(chuàng)建子目錄才可以正常操作,結(jié)果運(yùn)行成功了

另外的 重點(diǎn) B袷小9谔摇!
我們還要配置 一下 hdfs 相關(guān) output目錄的存儲(chǔ)大小上限道宅,這樣 方便管理食听,不然有人 的output太大,都不曉得 竟然會(huì)超過 源日志 大小污茵,這就尷尬了
》bin/hdfs dfs -put readme.txt /finance

》bin/hdfs dfs -du -s /finance
》3901 /finance

》bin/hdfs dfsadmin -setSpaceQuota 4000 /finance
設(shè)置/finance的大小上限為4000個(gè)字節(jié)

》bin/hdfs dfs -put readme1.txt /finance
由于已經(jīng)超出4000個(gè)字節(jié)樱报,則會(huì)報(bào)錯(cuò)
》bin/hdfs dfsadmin -clrSpaceQuota /finance 將配額清除掉
》bin/hdfs dfs -put readme1.txt /finance 這次上傳就不會(huì)錯(cuò)了~

[apache-nutch-1.2.rar 大約248M]
bin/hdfs fsck /finance/apache-nutch-1.2.rar
參考 http://www.cnblogs.com/i80386/p/3580107.html

這樣 把 這些 用戶賬號(hào) 分配并告知 使用者,并 告知 禁止使用root 和管理者用戶角色 并不可使用他人賬號(hào) 泞当,這樣就可以愉快的進(jìn)行 hdfs 的文件 權(quán)限管理了迹蛤,
尤其要注意 ,密碼不要太簡(jiǎn)單 ,因外要外網(wǎng)登陸盗飒,不然 被黑也是常事嚷量。

另外 hadoop的 acl 需要關(guān)注,未來也是需要 配置的逆趣,
http://www.reibang.com/p/2c8949340f6c
還要配置 hadoop的 ugi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝶溶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汗贫,更是在濱河造成了極大的恐慌身坐,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件落包,死亡現(xiàn)場(chǎng)離奇詭異部蛇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咐蝇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門涯鲁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人有序,你說我怎么就攤上這事抹腿。” “怎么了旭寿?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵警绩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我盅称,道長(zhǎng)肩祥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任缩膝,我火速辦了婚禮混狠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疾层。我一直安慰自己将饺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布痛黎。 她就那樣靜靜地躺著予弧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪湖饱。 梳的紋絲不亂的頭發(fā)上桌肴,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音琉历,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛旗笔,可吹牛的內(nèi)容都是我干的彪置。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蝇恶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拳魁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撮弧,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤潘懊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后贿衍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體授舟,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年贸辈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了释树。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡擎淤,死狀恐怖奢啥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘴拢,我是刑警寧澤桩盲,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站席吴,受9級(jí)特大地震影響赌结,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抢腐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一姑曙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迈倍,春花似錦伤靠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迹鹅,卻和暖如春卦洽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斜棚。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工阀蒂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留该窗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓蚤霞,卻偏偏與公主長(zhǎng)得像酗失,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子昧绣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 目的這篇教程從用戶的角度出發(fā)规肴,全面地介紹了Hadoop Map/Reduce框架的各個(gè)方面。先決條件請(qǐng)先確認(rèn)Had...
    SeanC52111閱讀 1,734評(píng)論 0 1
  • 經(jīng)過一系列的前期環(huán)境準(zhǔn)備夜畴,現(xiàn)在可以開始Hadoop的安裝了拖刃,在這里去apache官網(wǎng)下載2.7.3的版本http:...
    歡醉閱讀 1,683評(píng)論 8 28
  • 1 目的將hadoop 2.7.1 安裝到 166、167贪绘、168 三臺(tái)機(jī)器上2 提供環(huán)境練習(xí)環(huán)境192.168....
    灼灼2015閱讀 3,406評(píng)論 4 40
  • HDFS的體系結(jié)構(gòu) 設(shè)計(jì)目標(biāo) 自動(dòng)快速檢測(cè)應(yīng)對(duì)硬件錯(cuò)誤 流式訪問數(shù)據(jù) 轉(zhuǎn)移計(jì)算本身比轉(zhuǎn)移數(shù)據(jù)更加劃算 簡(jiǎn)單的數(shù)據(jù)一...
    Spike_3154閱讀 922評(píng)論 0 2
  • 之前的有點(diǎn)忘記了,這里在云筆記拿出來再玩玩.看不懂的可以留言 大家可以嘗試下Ambari來配置Hadoop的相關(guān)環(huán)...
    HT_Jonson閱讀 2,966評(píng)論 0 50