运行MapReduce报**错误的解决办法

运行MapReduce时报错如下:

Exception in thread "main" java.io.IOException: Error generating shuffle secret key

        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:476)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)
        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:1628)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)
        at test123.EventCount.main(EventCount.java:93)
Caused by: java.security.NoSuchAlgorithmException: HmacSHA1 KeyGenerator not available
        at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:158)
        at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:207)
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:473)

        ... 8 more

原因:更换JRE System library ,换成jdk下面的jre,不要用jdk或者外面的jre,因为只有jre中才有生成秘钥的相关类,如图:

运行MapReduce报**错误的解决办法