我已經設置了AWS EMR。我SSH進入主節點。我想將文件複製到hdfs系統中。在我的程序中這樣做的小代碼行是:添加ec2用戶使用hadoop
os.system('/home/hadoop/bin/hdfs dfs -put %s PATH_to_HADOOP' % tmp_output)
我想輸入我的hdfs文件系統的路徑。
我
[[email protected] input]$ /home/hadoop/bin/hdfs dfs -ls/
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2014-04-14 22:21 /hbase
drwxrwx--- - hadoop supergroup 0 2014-04-14 22:19 /tmp
我嘗試
[[email protected] input]$ /home/hadoop/bin/hdfs dfs -mkdir /tmp/stockmarkets
mkdir: Permission denied: user=ec2-user, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwxrwx---
因此,添加EC2用戶使用Hadoop的我跟着這些指示:
http://cloudcelebrity.wordpress.com/2013/06/05/handling-permission-denied-error-on-hdfs/
但是在我寫的(用ubuntu代替ec2用戶)
的sudo adduser ec2-user hadoop
不是得到一個附加消息,我得到:
Usage: useradd [options] LOGIN
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
所以我所有的困惑和擰..請幫助> ....
這個簡單的解決方案確實讓我工作。雖然很高興能夠找到如何以ec2用戶的身份完成它。所以我會等待幾天的洗脫,然後接受你的答案..儘管..謝謝.. –
在他們的文檔中亞馬遜竟然說:重要 你必須使用登錄名hadoop當您連接到Amazon EMR羣集節點時,否則類似於服務器的錯誤可能會發生我們的密鑰錯誤。 http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-connect-master-node-ssh.html –