1

我正在尝试使用 Kerberos 设置 Hadoop

我正在遵循 CDH3 安全指南。

到目前为止一切进展顺利(HFDS 工作正常等),但是当我尝试提交作业时出现以下错误。

我以用户 HDFS 的身份运行 HDFS 服务器,以名为 mapred 的用户身份运行 Hadoop。我使用名为 bob 的用户提交作业,该用户属于 mapred 组。

以下是我对 taskcontroller.cfg 的值

mapred.local.dir=/opt/hadoop-work/local/
hadoop.log.dir=/opt/hadoop-1.0.3/logs
mapreduce.tasktracker.group=mapred
min.user.id=1000

我得到的错误是

java.io.IOException: Job initialization failed (24) with output: Reading task controller config from /etc/hadoop/taskcontroller.cfg
Can't get group information for mapred  - Success.
    at org.apache.hadoop.mapred.LinuxTaskController.initializeJob(LinuxTaskController.java:192)
    at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1228)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1203)
    at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1118)
    at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2430)
    at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.hadoop.util.Shell$ExitCodeException: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:255)
    at org.apache.hadoop.util.Shell.run(Shell.java:182)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:375)
    at org.apache.hadoop.mapred.LinuxTaskController.initializeJob(LinuxTaskController.java:185)
    ... 8 more

错误总是伴随着 taskcontroller.cfg 中“mapreduce.tasktracker.group=mapred”的值。

我一直在调试和查看,我认为问题是我在不同用户和组之间设置了错误的权限。

任何帮助是极大的赞赏。

4

0 回答 0