我有一个mapreduce作业,假设将数据保存到MySQL数据库,但它正在抛出一个跟随的异常,
INFO mapred.JobClient: Task Id : attempt_201501122044_1310_r_000001_0, Status : FAILED
java.io.IOException at org.apache.hadoop.mapreduce.lib.db.DBOutputFormat.getRecordWriter(DBOutputFormat.java:180)
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:597)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:444)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
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:1642)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
这个mapreduce作业在5个节点的集群上运行,我已经确认通过使用sql连接创建测试简单的主类来形成数据库连接。
我在这一点上非常困难。
答案 0 :(得分:0)
这是权限问题:请注意UserGroupInformation已标记:
`at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:164`2)
什么样的安全问题? Stacktrace并不清楚。你的代码在做任何HDFS吗?或者还有哪些会引发安全检查?