2012-03-31 65 views
1

我有一个很奇怪的问题。我正在使用dfs-datastores Pail抽象将数据写入Java中的HDFS。尽管如此,我并不认为桶部件对于这个问题很重要。Hadoop FileSystem.getFS()暂停大约2分钟

当调用org.apache.hadoop.fs.FileSystem getFS(java.lang.String中路径),以将暂停约2分钟看似无所事事,然后回到我的本地文件系统的路径。这是在我的笔记本电脑上。

奇怪的是,当我今天在办公室的网络上时,它的工作非常快,但现在我回到家了,它又重新开始了。我使用Java 1.7运行Ubuntu 10.10 64位。

任何人有任何想法它在做什么?在工作和在家之间有什么不同?

更新: 我一直在使用调试程序代码,它似乎在Configuration.loadResource()中有麻烦。它会多次调用,并且需要5-10秒才能从该函数返回。

UPDATE2: 我已经缩小了这一点。最大的挂断似乎是它调用KerberosName.setConfiguration()时。这可以解释为什么Active Directory作为Kerberos服务器运行起来很快。我家里没有一个人,所以找不到一个。现在他们质疑,为什么在这个世界上它试图加载Java Kerberos的东西。

+0

NameNode日志中有趣的事情? – 2012-03-31 04:01:33

+0

我不认为有任何NameNode日志。它写入本地文件系统,它挂起的地方就是创建一个文件夹。 – 2012-03-31 04:07:31

+0

你的Ubuntu有NTFS挂载吗? – 2012-03-31 09:20:08

回答

1

我找到了一个解决方案(或至少是解决方法)。我安装了krb5-kdc软件包,现在我的小程序运行得很快,没有任何无法解释的暂停。在此之后,我删除了krb5-kdc,并进行了测试,结果仍然运行得很快。我删除了/etc/krb5.conf,并开始再次暂停。看起来像在Ubuntu上使用Hadoop库(至少)需要一个/etc/krb5.conf文件。

也许这会帮助别人。

+0

我在Ubuntu 12.04.2 LTS上遇到了同样的问题;运行'sudo apt-get install krb5-config'创建了/etc/krb5.conf文件,它为我解决了一些问题。 – 2013-06-30 01:18:37