2013-12-01 3 views
1

Я пытаюсь запустить пример WordCount, и я получил это брошено в лицо:Hadoop JAR: «JobTracker находится в безопасном режиме»

13/12/01 19:46:49 ERROR security.UserGroupInformation: PriviledgedActionException 
as:player cause:org.apache.hadoop.ipc.RemoteException: 
org.apache.hadoop.mapred.SafeModeException: JobTracker is in safe mode 
    at org.apache.hadoop.mapred.JobTracker.checkSafeMode(JobTracker.java:5188) 
    at org.apache.hadoop.mapred.JobTracker.getStagingAreaDir(JobTracker.java:3677) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426) 

org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.mapred.SafeModeException: JobTracker is in safe mode 
    at org.apache.hadoop.mapred.JobTracker.checkSafeMode(JobTracker.java:5188) 
    at org.apache.hadoop.mapred.JobTracker.getStagingAreaDir(JobTracker.java:3677) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426) 

    at org.apache.hadoop.ipc.Client.call(Client.java:1113) 
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229) 
    at org.apache.hadoop.mapred.$Proxy2.getStagingAreaDir(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62) 
    at org.apache.hadoop.mapred.$Proxy2.getStagingAreaDir(Unknown Source) 
    at org.apache.hadoop.mapred.JobClient.getStagingAreaDir(JobClient.java:1309) 
    at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:102) 
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:942) 
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:550) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580) 
    at org.apache.hadoop.examples.WordCount.main(WordCount.java:82) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 
    at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) 
    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:160) 

Я попытался несколько конфигураций в mapred-default.xml, но без успех.

+0

Идите проверить журналы для своего Job Tracker, есть ли какие-либо исключения стека следов, почему он находится в безопасном режиме? У вас есть какие-либо следящие треки, какая версия hadoop вы используете, ... –

+1

jobtracker обычно переходит на safemode, если не имеет доступа к {hadoop.tmp.dir}. Проверьте, есть ли каталог, и у вас есть разрешения на это. –

ответ

2

HDFS был недоступен. В журналах указывалось, что определенный каталог поврежден, что делает его нечитаемым. Мне пришлось закрыть NameNode, отформатировать его hadoop namenode -format и перезапустить его.

0

Я решил эту проблему, удалив файл /dfs/name/in_use.lock в hadoop.tmp.dir. Это решение малоинвазивно, чем форматирование NameNode.

4

Попробуйте выдавать команду

hadoop dfsadmin -safemode leave 

В случае успеха вы можете получить "Безопасный режим OFF"

0
hadoop dfsadmin -safemode leave 

Эта команда помогла много. Проблема решена путем отключения безопасного режима.

Смежные вопросы