这是我的第一个堆栈溢出问题。通常我不需要问,因为它已经在其他地方解决了,但我已经试了将近一个星期,还是做不到。
我有maven。
由于mahout网站上的指南基本上说"安装mahout:第一步-你应该安装mahout",我不得不在其他地方寻找指南。我在这里遵循指南,因为它看起来足够简单和有意义:
http://harish11g.blogspot.co.uk/2012/02/configuring-mahout-clustering-hadoop.html
但是,如果我不运行
svn co http://svn.apache.org/repos/asf/mahout/trunk作为sudo,它不会工作。
同样,如果我不使用sudo
mvn install
它不会工作,在构建的mahout-core阶段失败。
使用sudo,构建成功,但由于我的用户帐户没有做构建(root做了),当我将项目导入eclipse时,有错误。下面是截图:http://i.imgur.com/MEp3lA0.png尽管有这些错误,我可以继续使用mahout吗?或者我如何修复它们?如果我做错了什么,应该以不同的方式重新安装mahout,我很乐意这样做,但我需要确切地知道我做错了什么。
我尝试使用maven在我的主目录中安装mahout,它也不能在那里工作。我的想法是我不需要超级用户权限来使用这个目录,所以我没有使用sudo。我还尝试更改/opt的权限,以允许我的用户帐户进行更改。它仍然失败了,我不得不再次使用sudo,日食错误仍然显示。
我不明白为什么我在网上看到的每一个指南都没有这个问题。我的用户帐户有什么不同,意味着我不能简单地使用
mvn install
下载和安装mahout ?
如果有人能解释这是一个简单的一步一步的方式,那将是惊人的,因为我真的不知道为什么我有这样的麻烦。另外,在这个项目中,我只是在过去几周才认真地使用Ubuntu(尽管在过去的一年里我有过一些使用它的经验,但从来没有真正使用过它),所以你可以理解,如果我没有立即意识到一些终端命令或其他linux技巧,对其他人来说可能是显而易见的。
在该终端目录上执行ls -l
。列出的用户名是否与您登录(并运行eclipse)的用户名匹配,甚至与终端提示符中的用户名匹配?
这很糟糕:我以jj的身份登录,我试图编辑hduser:
拥有的文件jj@jj-ThinkPad-T420 ~/dev/crap $ ls -l
total 0
-rw-rw-r-- 1 hduser audio 0 Jun 16 23:37 afile
所以我们将目录的所有权改为jj:
jj@jj-ThinkPad-T420 ~/dev $ sudo chown -R jj:jj crap
编译到这个目录:
jj@jj-ThinkPad-T420 ~/dev/crap $ ls -l
total 0
-rw-rw-r-- 1 jj jj 0 Jun 16 23:37 afile
图片描述Eclipse无法将编译后的类写入他人拥有的目录;而Eclipse(以及桌面的其余部分)是由您拥有的。Root用户可以在任何目录下做任何事情,因此sudo可以工作。