2016-08-18 37 views
0

我有ambari 2.1和HDP 2.3的hortonworks中的一個羣集設置。我必須創建一個用於創建HDFS目錄和配額設置的自動腳本。任何人都有任何與此相關的腳本或任何類型的建議,請在這裏發帖。用於創建HDFS目錄和配額設置的自動shell腳本

+0

歡迎使用堆棧溢出:-) 請看[問] 以及如何創建[mcve]。這將有助於獲得有用的答案。 這個網站不是一個代碼生成器。顯示你自己的努力,社區將幫助你。我將此問題標記爲關閉。 – JimHawkins

回答

0

我剛剛在HDFS上做了一個快速閱讀,發現了一些可能有所幫助的頁面,並且使用shell腳本就足夠了。

hdfs hdfs dfs -mkdir /directory_name 

更改配額可以通過以下方式進行:

一個新的目錄可以使用添加現在

hdfs hdfs dfsadmin -setSpaceQuota 1k /directory_name 

,如果我們結合到上述腳本,說「 create_and_set_quota.sh」,並在外殼上通過./create_and_set_quota.sh mydirname具有以下內容運行它:

hdfs hdfs dfs -mkdir /$1 
hdfs hdfs dfsadmin -setSpaceQuota 1024m /$1 

應創建目錄並設置配額。這裏有一些更多的網頁與樣品和匹配的討論:

Set quotas for users

Create a directory and set quota, this is the base of the above code.

More hdfs commands

+0

我已經創建了一個採用uname和密碼並以3個目錄作爲輸入的腳本。但我的要求是我們必須創建一個腳本來概括它,以便我們可以接受任意數量的輸入(意味着任意數量的目錄作爲輸入)。此外,不同目錄的所有權,權限和spaceQuota可能會有所不同。所以請建議我需要在腳本中進行的修改。 –

+0

我建議創建幾個腳本,而不是一個大的腳本:首先創建目錄(使用參數'directory',其次創建每個目錄的配額(使用參數'directory','uname','quota')。然後使用這些兩個在你的主腳本中,以及一個結構化的數據源,例如JSON文件或字符串,我不建議創建帶有太多參數的腳本,這會使得開發和調試變得緩慢 – SaschaM78

+0

我創建了腳本...現在我想要像...每當我運行該腳本時,它應該以超級用戶的身份登錄,在我的情況下,這是hdfs,然後執行我的腳本。你能否建議我如何實現這個功能 –

1

下面是我的腳本:

#!/bin/bash 
read -p "Enter UserName: " username 
echo "Welcome $username!" 
read -s -p "Enter Password: " pswd 
echo $pswd 
hdfs dfs -mkdir /$1 
hdfs dfs -mkdir /$2 
hdfs dfs -mkdir /$3 
hdfs dfs -chown hdfs:hdfs /$1 
hdfs dfs -chown hdfs:hdfs /$2 
hdfs dfs -chown hdfs:hdfs /$3 
hdfs dfs -chmod 775 /$1 
hdfs dfs -chmod 775 /$2 
hdfs dfs -chmod 775 /$3 
hdfs dfsadmin -setSpaceQuota 1024m /$1 
hdfs dfsadmin -setSpaceQuota 1024m /$2 
hdfs dfsadmin -setSpaceQuota 1024m /$3 

我通過./create_and_set_quota.sh test1 test2 test3在shell中運行它