4

20 ノードの Hadoop クラスターがあり、各ノードには 8 GB のメモリと 8 コアのプロセッサがあります。300 ~ 600 個のレデューサーを使用して長時間実行しているジョブがあると、ランダムに次のエラーが発生することがあります。

Exception in thread "main" java.io.IOException: Exception reading file:/var/tmp/jim/hadoop-jim/mapred/local/taskTracker/jim/jobcache/job_201305231647_0005/jobToken
  at org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:135)
  at org.apache.hadoop.mapreduce.security.TokenCache.loadTokens(TokenCache.java:165)
  at org.apache.hadoop.mapred.Child.main(Child.java:92)

Caused by: java.io.IOException: failure to login
  at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:501)
  at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:463)
  at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:1519)
  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1420)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
  at org.apache.hadoop.fs.Path.getFileSystem(Path.java:187)
  at org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:129)
... 2 more

Caused by: javax.security.auth.login.LoginException: java.lang.NullPointerException: invalid null input: name
  at com.sun.security.auth.UnixPrincipal.<init>(UnixPrincipal.java:70)
  at com.sun.security.auth.module.UnixLoginModule.login(UnixLoginModule.java:132)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

JVM を切り替えてみましたが、オープン JDK 1.7 と Oracle JVM 1.6 の両方で同じエラーが発生することがありました。常に発生するとは限りません。発生すると、特定のノードで実行されているすべてのタスクが失敗し、そのノードがブラックリストに登録されます。ただし、別のジョブを送信すると、通常は同じノードが正常に実行されます。クラスター ノードで Ubuntu 12.10 を実行しています。

このエラーをオンラインで検索したところ、Cloudera メーリング アーカイブからの投稿だけが見つかりました。この投稿では、誰かが Mac で疑似分散 Hadoop クラスターを実行していました。それ以外では、私はこの問題に出くわした最初の人だと思います。

私は Hadoop を初めて使用するわけではなく、通常はクラスター関連の問題や構成ミスの問題を自分で解決できますが、これに関するフィードバックをいただければ幸いです。

4

0 に答える 0