我已经为10节点集群安装并配置了hadoop2.5.2。1作为主节点,其他节点作为slavenodes。
我在执行hadoop fs命令时遇到问题。hadoop fs-ls命令在hdfs uri中运行良好。当在没有hdfs uri的情况下使用时,它会给出消息“ls:`.”:没有这样的文件或目录”
ubuntu@101-master:~$ hadoop fs -ls
15/01/30 17:03:49 WARN util.NativeCodeLoader: Unable to load native-hadoop
ibrary for your platform... using builtin-java classes where applicable
ls: `.': No such file or directory
ubuntu@101-master:~$
然而,使用hdfs uri执行相同的命令
ubuntu@101-master:~$ hadoop fs -ls hdfs://101-master:50000/
15/01/30 17:14:31 WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - ubuntu supergroup 0 2015-01-28 12:07 hdfs://101-master:50000/hvision-data
-rw-r--r-- 2 ubuntu supergroup 15512587 2015-01-28 11:50 hdfs://101-master:50000/testimage.seq
drwxr-xr-x - ubuntu supergroup 0 2015-01-30 17:03 hdfs://101-master:50000/wrodcount-in
ubuntu@101-master:~$
由于这种行为,我在mapreduce程序中遇到异常。jarlib指的是hdfs文件位置,而我希望jarlib指的是hadoop节点上本地文件系统中存储的jar文件。
5条答案
按热度按时间ivqmmu1c1#
这里有几件事在起作用;基于“jarlib指的是hdfs文件位置”,听起来您确实将hdfs路径设置为
fs.default.name
,这确实是典型的设置。所以,当你打字的时候hadoop fs -ls
,这确实是在尝试查找hdfs内部,除了查找您当前的工作目录,应该是hdfs://101-master:50000/user/ubuntu
. 不幸的是,这个错误消息有些混乱,因为它没有告诉您这一点.
被解释为完整的路径。如果你hadoop fs -mkdir /user/ubuntu
那么hadoop fs -ls
应该开始工作了。这个问题与你的“jarlib”问题无关;每当您想要引用显式存储在本地文件系统中的文件时,但是路径通过hadoop的
Path
解决方案,您只需添加file:///
强制hadoop引用本地文件系统。例如:尝试将jar文件路径作为fille传递
file:///path/to/your/jarfile
它应该有用。9rbhqvlz2#
这与用户丢失的主目录有关。一旦我在hdfs下为登录用户创建了home目录,它就像一个魔咒。。
这个方法解决了我的问题。
baubqpgj3#
你所看到的行为是意料之中的,让我来解释一下你工作时发生了什么
hadoop fs
命令。命令的语法如下:
hadoop fs -ls [path]
默认情况下,如果不指定[path]
对于上面的命令,hadoop将路径扩展到/home/[username]
在hdfs中;哪里[username]
替换为执行命令的linux用户名。因此,当您执行此命令时:
你看到错误的原因是
ls: '.': No such file or directory
因为hadoop正在寻找这个路径/home/ubuntu
,似乎hdfs中不存在此路径。执行此命令的原因:
正在工作,因为您已明确指定
[path]
是hdfs的根。您也可以使用以下方法执行相同的操作:它会自动计算到hdfs的根。
希望,这能清除你在执行时看到的行为
hadoop fs -ls
命令。因此,如果要指定本地文件系统路径,请使用
file:///
url方案。sirbozc54#
warn util.nativecodeloader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类
将使用.bashrc文件中的以下命令删除此错误:
t1qtbnec5#
hadoop中的用户目录是(在hdfs中)
如果您收到此错误消息,可能是因为您尚未在hdfs中创建用户目录。
使用
要查看您当前的操作系统用户,请使用: