我已经设置了AWS EMR.我SSH到主节点.我想将文件复制到hdfs系统中.我的程序中的一小段代码是:
os.system('/home/hadoop/bin/hdfs dfs -put %s PATH_to_HADOOP' % tmp_output)
Run Code Online (Sandbox Code Playgroud)
我想输入我的hdfs文件系统的路径.
我做
[ec2-user@ip-172-31-0-185 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
Run Code Online (Sandbox Code Playgroud)
我试试
[ec2-user@ip-172-31-0-185 input]$ /home/hadoop/bin/hdfs dfs -mkdir /tmp/stockmarkets
mkdir: Permission denied: user=ec2-user, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwxrwx---
Run Code Online (Sandbox Code Playgroud)
所以,要添加ec2-user使用hadoop,我按照以下说明操作:
http://cloudcelebrity.wordpress.com/2013/06/05/handling-permission-denied-error-on-hdfs/
但是在我写完之后(将ubuntu替换为ec2-user)
sudo adduser ec2-user hadoop
Run Code Online (Sandbox Code Playgroud)
而不是获取添加消息,我得到:
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 …Run Code Online (Sandbox Code Playgroud) int a[] = { 1, 2, 3, 4, 5 };
const int N = sizeof(a)/sizeof(a[0]);
cout<<N<<endl;
for (int i = 0; i < N; ++i)
{
cout << (i[a-i]%N)[a+i-1] << " ";
}
Run Code Online (Sandbox Code Playgroud)
//它打印1 2 3 4 5,即我不理解的数组是cout <<(i [ai]%N)[a + i-1] <<"";
我试图将一个字符串解析为日期.
我在用
new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS").parse("20140923-14:32:34.456")
Run Code Online (Sandbox Code Playgroud)
我的输出是:(日期对象)
Tue Sep 23 14:32:34 EDT 2014
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我没有得到毫秒.我需要日期和毫秒,而不仅仅是毫秒.
预期输出:(日期对象)
Tue Sep 23 14:32:34.456 EDT 2014
Run Code Online (Sandbox Code Playgroud)
谢谢
PS:我最后不想要一个字符串对象,而是一个Date.