Expected authority at index 7: hdfs://
2929 단어 expect
오늘 Test Forest를 뛸 때 뜻밖에도 이 문제가 발생했다.
Exception in thread "main" java.lang.IllegalArgumentException: Expected authority at index 7: hdfs://
at java.net.URI.create(URI.java:859)
at org.apache.hadoop.fs.FileSystem.getDefaultUri(FileSystem.java:131)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:123)
at org.apache.mahout.classifier.df.mapreduce.Classifier.run(Classifier.java:107)
at org.apache.mahout.classifier.df.mapreduce.TestForest.mapreduce(TestForest.java:187)
at org.apache.mahout.classifier.df.mapreduce.TestForest.testForest(TestForest.java:173)
at org.apache.mahout.classifier.df.mapreduce.TestForest.run(TestForest.java:145)
at mahout.fansy.partial.test.TestTestForest.main(TestTestForest.java:26)
Caused by: java.net.URISyntaxException: Expected authority at index 7: hdfs://
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.failExpecting(URI.java:2835)
at java.net.URI$Parser.parseHierarchical(URI.java:3083)
at java.net.URI$Parser.parse(URI.java:3034)
at java.net.URI.<init>(URI.java:595)
at java.net.URI.create(URI.java:857)
... 7 more
TestForest 코드는 다음과 같습니다.
package mahout.fansy.partial.test;
import org.apache.hadoop.conf.Configuration;
import org.apache.mahout.classifier.df.mapreduce.TestForest;
public class TestTestForest {
/**
* TestForest
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String[] arg=new String[]{"-i","hdfs://ubuntu:9000/user/breiman/input/glass.data",
"-ds","hdfs://ubuntu:9000/user/breiman/glass.info",
"-m","hdfs://ubuntu:9000/user/breiman/glass.tree/forest.seq",
"-a","-mr",
"-o","hdfs://ubuntu:9000/user/breiman/out-testforest0"};
Configuration conf=new Configuration();
conf.set("mapred.job.tracker", "ubuntu:9001");
conf.set("fs.default.name", "hdfs://");
TestForest tf=new TestForest();
tf.setConf(conf);
Configuration confq=tf.getConf();
System.out.println(confq);
tf.run(arg);
}
}
처음에는 그냥 Test Forest를 사용했어요.main(arg)에서 호출했지만 conf의 값을 설정할 수 없음을 발견했습니다. (즉 모두 기본값에 따라 이것은 안 됩니다. win7의 myeclipse에서 Hadoop을 호출하면 conf를 설정해야 합니다.) 하지만 어디에서 설정할 수 있는지 발견했습니다. 그래서 TestForest는 Configuration을 계승한 것입니다. 그리고 Configuration에 setConf 방법이 있습니다. 그래서 TestForest 대상을 실례화하고 setConf 방법으로 conf를 설정합니다.하지만 conf 설정이 잘못되어 위의 오류가 발생했습니다.어떻게 설정해야 하나요?사실 conf.set("fs.default.name", "hdfs://");conf.set("fs.default.name", "ubuntu:9000")으로 변경;이 중 ubuntu는 주 노드 기계 이름입니다.그리고 도망갈 수 있어.
나누다
옮겨 싣기 블로그 주소:http://blog.csdn.net/fansy1990
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자동 로그인 서버 expect텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.