【问题标题】:PriviledgedActionException while running kmeans on hadoop在hadoop上运行kmeans时出现PriviledgedActionException
【发布时间】:2015-03-20 06:29:22
【问题描述】:

我正在尝试使用此指南在 hadoop 上运行 KMeans。

http://www.slideshare.net/titusdamaiyanti/hadoop-installation-k-means-clustering-mapreduce?qid=44b5881c-089d-474b-b01d-c35a2f91cc67&v=qf1&b=&from_search=1#likes-panel

我在 eclipse-luna 中运行它。当我执行时,map 和 reduce 都显示它们已完成 100%。但我没有得到输出。相反,我最后得到了以下错误。请帮我解决这个问题..

15/03/20 11:29:44 INFO mapred.JobClient: Cleaning up the staging area file:/tmp/hadoop-hduser/mapred/staging/hduser378797276/.staging/job_local378797276_0002

15/03/20 11:29:44 ERROR security.UserGroupInformation: PriviledgedActionException as:hduser cause:java.io.IOException: No input paths specified in job

Exception in thread "main" java.io.IOException: No input paths specified in job


at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:193)


at org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat.listStatus(SequenceFileInputFormat.java:55)


at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:252)


at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1054)


at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1071)


at org.apache.hadoop.mapred.JobClient.access$700(JobClient.java:179)


at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:983)


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:422)


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 com.clustering.mapreduce.KMeansClusteringJob.main(KMeansClusteringJob.java:114)

【问题讨论】:

    标签: eclipse hadoop mapreduce k-means


    【解决方案1】:

    您必须在运行 map reduce 程序之前提供输入文件的位置。提供输入文件位置的方法有两种。

    1. 使用 ecliple go 运行配置并提供文件名作为参数
    2. 将您的程序转换为 jar 文件并在您的 hadoop 集群中运行以下命令

      hadoop jar NameOfYourJarFile InputFileLocation OutPutFileLocation `

    【讨论】:

    • 实际上在上述程序中,输入向量仅在主程序中进行硬编码。没有任何外部数据文件。有什么建议吗?
    猜你喜欢
    • 2015-05-20
    • 2015-07-29
    • 2023-03-20
    • 1970-01-01
    • 2012-09-18
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多