Hadoop 如何使用HDInsight.NETSDK提交mahout推荐作业
我是HDInsight的新手。我想学习和实践机器学习,HDInsight正是我想要的,但似乎没有直接的API。由于mahout建议本质上会转化为mapredure作业,因此我遵循了Windows Azure文档中的一些mapreduce示例,并编写了以下代码:Hadoop 如何使用HDInsight.NETSDK提交mahout推荐作业,hadoop,mahout,azure-hdinsight,Hadoop,Mahout,Azure Hdinsight,我是HDInsight的新手。我想学习和实践机器学习,HDInsight正是我想要的,但似乎没有直接的API。由于mahout建议本质上会转化为mapredure作业,因此我遵循了Windows Azure文档中的一些mapreduce示例,并编写了以下代码: // Define the MapReduce job MapReduceJobCreateParameters mrJobDefinition = new MapReduceJobCreateParameters() { Jar
// Define the MapReduce job
MapReduceJobCreateParameters mrJobDefinition = new MapReduceJobCreateParameters()
{
JarFile = "wasb:///example/jars/mahout-core-0.9-job.jar",
ClassName = "org.apache.mahout.cf.taste.hadoop.item.RecommenderJob",
};
mrJobDefinition.Arguments.Add(" -s SIMILARITY_COOCCURRENCE");
mrJobDefinition.Arguments.Add(" --input=/reply");
mrJobDefinition.Arguments.Add(" --output=/recommend/");
mrJobDefinition.Arguments.Add(" --usersFile=/data/users.txt");
我已经将“mahout-core-0.9-job.jar”上传到指定Azure blob存储容器中的/example/jars
但我收到了以下错误消息:
14/04/03 12:04:28错误security.UserGroupInformation:PriviledgedActionExceptionas:johnny原因:java.io.IOException:异常读取文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johnny/jobcache/job\u 201404031203\u 0001/jobToken=
java.security.PrivilegedActionException:java.io.IOException:异常读取文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johnny/jobcache/job_201404031203_0001/jobToken=
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:415)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1233)
位于org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:951)
位于org.apache.hadoop.mapreduce.Job.submit(Job.java:550)
位于org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580)
在org.apache.mahout.cf.taste.hadoop.prepare.PreparePreferenceMatrix.job.run(preparePreferenceMatrix.java:77)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:164)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(RecommenderJob.java:322)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:160)
原因:java.io.IOException:异常读取文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johnny/jobcache/job\u 201404031203\u 0001/jobToken=
位于org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:136)
位于org.apache.hadoop.mapred.JobClient.readTokensFromFiles(JobClient.java:2149)
在org.apache.hadoop.mapred.JobClient.populateTokenCache(JobClient.java:2185)上
位于org.apache.hadoop.mapred.JobClient.access$300(JobClient.java:179)
位于org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:964)
位于org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:951)
... 还有16个
原因:java.io.FileNotFoundException:文件文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johny/jobcache/job\u 201404031203\u 0001/jobToken=不存在。
位于org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:427)
位于org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:254)
位于org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker(ChecksumFileSystem.java:125)
位于org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:283)
位于org.apache.hadoop.fs.FileSystem.open(FileSystem.java:436)
位于org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:130)
... 还有21个
线程“main”java.io.IOException中的异常:异常读取文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johny/jobcache/job\u 201404031203\u 0001/jobToken=
位于org.apache.hadoop.security.Credentials.readTokenStorageFile(Credentials.java:136)
位于org.apache.hadoop.mapred.JobClient.readTokensFromFiles(JobClient.java:2149)
在org.apache.hadoop.mapred.JobClient.populateTokenCache(JobClient.java:2185)上
位于org.apache.hadoop.mapred.JobClient.access$300(JobClient.java:179)
位于org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:964)
位于org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:951)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:415)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1233)
位于org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:951)
位于org.apache.hadoop.mapreduce.Job.submit(Job.java:550)
位于org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580)
在org.apache.mahout.cf.taste.hadoop.prepare.PreparePreferenceMatrix.job.run(preparePreferenceMatrix.java:77)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:164)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(RecommenderJob.java:322)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:160)
原因:java.io.FileNotFoundException:文件文件:/c:/apps/temp/hdfs/mapred/local/taskTracker/johny/jobcache/job\u 201404031203\u 0001/jobToken=不存在。
位于org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:427)
位于org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:254)
位于org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker(ChecksumFileSystem)。