Hadoop FileSystem.getFS () делает паузу около 2 минут - PullRequest
1 голос
/ 31 марта 2012

У меня очень странная проблема.Я использую абстракцию Pail dfs-datastores для записи данных в HDFS в Java.Я не думаю, что часть Pail важна для этой проблемы.

Когда он вызывает org.apache.hadoop.fs.FileSystem getFS (путь java.lang.String) с путем в моей локальной файловой системе, этопауза в течение приблизительно 2 минут, казалось бы, ничего не делая, затем возвращается.Это на моем ноутбуке.

Странно то, что он работал очень быстро, когда я был в сети в моем офисе сегодня, но теперь, когда я дома, он делает это снова.Я использую Ubuntu 10.10 64-bit с Java 1.7.

У кого-нибудь есть идеи, что он делает?Что может быть разным между работой на работе и дома?

ОБНОВЛЕНИЕ: Я прошагал по коду с помощью отладчика, и, похоже, возникли проблемы в Configuration.loadResource ().Он вызывает это несколько раз, и для возврата из этой функции потребуется 5-10 секунд.

ОБНОВЛЕНИЕ2: Я немного сузил это.Кажется, что наибольшее зависание происходит при вызове KerberosName.setConfiguration ().Что объясняет, почему он работает быстро на работе, поскольку Active Directory действует как сервер Kerberos.У меня дома такого нет, поэтому он не может его найти.Теперь они задаются вопросом, почему в мире он пытается загрузить материал Java Kerberos.

1 Ответ

1 голос
/ 01 апреля 2012

Я нашел решение (или хотя бы обходное решение). Я установил пакет krb5-kdc, и теперь моя маленькая программа работает быстро без каких-либо необъяснимых пауз. После этого я удалил krb5-kdc, проверил, и он все еще работал быстро. Я удалил /etc/krb5.conf, и он снова начал делать паузу. Похоже, что для использования библиотеки Hadoop в Ubuntu (как минимум) требуется файл /etc/krb5.conf.

Может быть, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...