将HDFS挂载到本地目录失败

时间:2014-01-20 13:18:57

标签: java hadoop hdfs cloudera mount

我目前正在尝试将hdfs安装到ubuntu机器上的本地目录中。我正在使用hadoop-fuse-dfs软件包。

所以,我正在执行以下命令

ubuntu@dev:~$ hadoop-fuse-dfs dfs://localhost:8020 /mnt/hdfs

输出

  

INFO   /var/lib/jenkins/workspace/generic-package-ubuntu64-12-04/CDH4.5.0-Packaging-Hadoop-2013-11-20_14-31-53/hadoop-2.0.0+1518-1.cdh4.5.0 .p0.24〜精确/ SRC / Hadoop的HDFS项目/ Hadoop的HDFS / SRC /主/天然的/熔断器的DFS / fuse_options.c:164   添加FUSE arg / mnt / hdfs

但是,当我尝试在本地访问挂载的hdfs时,我看到错误消息(请检查附加的快照)

ls: cannot access /mnt/hdfs: No such file or directory
total 4.0K
d????????? ? ?      ?         ?            ? hdfs

PS:我已经执行了以下命令,但仍然得到相同的输出。

$ sudo adduser ubuntu fuse
$ sudo addgroup ubuntu fuse

我错过了什么吗?请提出一些解决方法。

2 个答案:

答案 0 :(得分:0)

至少当hadoop-fuse-dfs无法连接到默认情况下在端口8020上运行的文件系统元数据操作时,会发生这种情况,例如由于网络配置问题。

您可以在运行hadoop-fuse-dfs之前从主机测试该连接是否正常工作,例如由

telnet your-name-node 8020

GET /

答案 1 :(得分:0)

您需要使用hostname而不是localhost。我遇到了同样的问题,在将localhost更改为也在hosts文件中定义的主机名后,它得到了修复。

hadoop-fuse-dfs dfs://{hostname}:8020 /mnt/hdfs

根据Cloudera

  

在HA部署中,使用HDFS名称服务而不是NameNode URI;也就是说,在hdfs-site.xml中使用dfs.nameservices的值。