0

안녕하세요. SimpleKmeanClustering 코드를 실행 중입니다. Github에서 클러스터링 작동 방법을 확인하십시오. 내 Windows Eclipse에서 코드를 컴파일 할 수 있습니다. KMeanClustering에서 클래스를 찾을 수 없음 - Mahout

내가 내 프로젝트의 항아리를 만들어, 나는 그것을 설치 코끼리 조련사로, 단일 노드 하둡 클러스터 ( CHD-4.2.1)에서 실행하고자합니다. mahout 예제는이 클러스터에서 제대로 실행되므로 설치와 관련하여 아무런 문제가 없습니다.

Promt에서 다음 명령을 사용하여 jar 파일을 실행합니다. 올바른 방법으로 시도하고 있는지 확실하지 않습니다.

사용자 @의 INFPH01463U : ~ $의 코끼리 조련사 항아리 /home/user/apurv/Kmean.jar tryout.SimpleKMeansClustering

나는 오류

MAHOUT_LOCAL이 설정되지 않은 해당되었다; classpath에 HADOOP_CONF_DIR을 추가합니다. /usr/lib/mahout/mahout-examples-0.7-cdh4.3.0-job :는/usr/lib 디렉토리/하둡/빈/하둡 및 HADOOP_CONF_DIR =은/etc/하둡/conf의 코끼리 조련사-JOB을 사용하여 하둡에 을 실행합니다. 에 항아리 이는 java.net.URLClassLoader $ 1.run (URLClassLoader.java:202)에서 : 클래스를 추가 할 수 없습니다 : 항아리 java.lang.ClassNotFoundException가 13/06/06 14시 42분 18초 이 driver.MahoutDriver 경고 항아리 java.lang.ClassLoader의에서 java.lang.ClassLoader.loadClass (ClassLoader.java:306) 에서 java.net.URLClassLoader.findClass (URLClassLoader.java:190) 에서 java.security.AccessController.doPrivileged (기본 방법) .loadClass (ClassLoader.java:247) 에서 java.lang.Class.forName0 (기본 메소드) at java.lang.Class.forName (Class.java:169) at org.apache.mahout.driver.MahoutDriver.addClass (MahoutDriver.java:236) at org.apache.mahout.driver.MahoutDriver.main (MahoutDriver. 자바 : 128) sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) 에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25에서) java.lang.reflect.Method.invoke (Method.java:597) at org.apache.hadoop.util.RunJar.main (RunJar.java:208) 13/06/06 14:42:18 WARN 드라이버. MahoutDriver : classpath에있는 jar.props가 없습니다. 명령 줄 인수 만 사용합니다. 알 수없는 프로그램 'jar' 이 선택되었습니다. 유효한 프로그램 이름은 다음과 같습니다 arff.vector가 : ARFF 파일이나 디렉토리 baumwelch에서 벡터 생성 : 바움 - 웰치 알고리즘 자율 HMM 훈련 캐노피를 위해 : 캐노피 클러스터링 고양이 : 로지스틱 회귀 모델 같은 파일 또는 자원을 인쇄 볼 것이다 그것을
cleansvd : SVD 출력 clusterdump의 정리 및 검증 : 텍스트 clusterpp에 덤프 클러스터 출력 : 클러스터에서 그룹 클러스터링 출력이 cmdump :은 : LDA를 통해 : HTML 또는 텍스트 형식
CVB 혼란 행렬을 덤프 Collapsed Variation Bayes (0th deriv. approx)
cvb0_local :: LDA를 통한 Collapsed Variation Bayes가 로컬 메모리에 있습니다.
디리클레 : 디리클레 클러스터링 eigencuts는 : Eigencuts 스펙트럼 클러스터링 evaluateFactorization는 : 프로브 fkmeans 대해 평가 매트릭스 인수 분해의 계산 RMSE와 MAE : 퍼지 K-수단 클러스터링 FPG : 빈번 패턴 성장 hmmpredict는 : 랜덤 생성 : 아이템 기반 협업 필터링 kmeans위한 아이템 아이템 유사성 같이 계산한다 : K-수단 lucene.vector 클러스터링 :하십시오 루씬 인덱스 matrixdump에서 벡터를 생성한다 : 주어진 HMM의 itemsimilarity 의한 관찰 순서 : CSV의 행렬 덤프 형식 matrixmult : : 두 개의 행렬의 결과를 가져옴 meanhift :: Mean Shift 클러스터링 minhash :: Run Minhash 클러스터링 parallelALS :: 등급 행렬의 ALS-WR 인수 분해는 recommendfactorized : 항목 기반 협업 필터링 regexconverter을 사용하여 계산 권장 사항 : 계산 등급 매트릭스
의 인수 분해를 사용하여 권장 recommenditembased : 텍스트 파일을 변환을 기반으로 라인 단위 당 에 정규 표현식은 rowid로 :지도 SequenceFile {SequenceFile, SequenceFile} rowsimilarity에 : 매트릭스 runAdaptiveLogistic의 행의 페어의 유사성을 계산 : 새로운 생산 데이터가 아마 훈련 및 검증 AdaptivelogisticRegression 모델 runlogistic을 사용하여 점수 : 물류를 실행하십시오 CSV 데이터에 대한 회귀 모델 seq2encoded : 인코딩 된 텍스트 시퀀스에서 스파 스 벡터 생성이 seq2sparse 파일 : 텍스트 순서에서 스파 스 벡터 생성이 seqdirectory 파일 : 디렉토리 seqdumper에서 (텍스트의) 시퀀스 파일을 생성 : 일반 시퀀스 파일 덤퍼 seqmailarchives가 : 포함하는 디렉토리에서 gzip으로 압축 된 메일 아카이브 seqwiki을 SequenceFile를 작성 : 위키 백과 XML 덤프 시퀀스 파일 spectralkmeans에 : 분할 클러스터링 스펙트럼 K-방법 : 테스트 및 기차로 분할 입력 데이터가 splitDataset 설정 : 는 평가를 분할 데이터 세트를 훈련 및 프로브 파트에 넣기 ssvd :: 확률 적 SVD svd :: Lanczos 특이 값 분해 testnb : : Vector-bas 테스트 에드 베이 즈 분류 trainAdaptiveLogistic : 기차 AdaptivelogisticRegression 모델 trainlogistic는 : 확률 그라데이션 하강 trainnb를 사용하여 로지스틱 회귀 기차 : 기차는 벡터 기반의 베이 즈 분류 전치가 : 매트릭스 validateAdaptiveLogistic의 전치을 가지고 : 의 유효성을 검사합니다 고정 데이터에 대한 AdaptivelogisticRegression 모델 vecdist : : 벡터 세트 (또는 클러스터 또는 캐노피, 메모리에 맞아야 함)와 벡터 목록 사이의 거리를 계산합니다. vectordump :: 시퀀스 파일에서 텍스트로 덤프하는 벡터 viterbi : : Viterbi 주어진 출력 상태에서 숨겨진 상태의 디코딩 13/06/06 14:42:18 INFO driver.MahoutDriver : Program took 2 밀리 초 (분 : 이 3.3333333333333335E-5) 여기

내가 사용하고 내 코드입니다 :

코드

package tryout; 

import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem; 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.io.IntWritable; 
import org.apache.hadoop.io.LongWritable; 
import org.apache.hadoop.io.SequenceFile; 
import org.apache.hadoop.io.Text; 
import org.apache.mahout.math.RandomAccessSparseVector; 
import org.apache.mahout.math.Vector; 
import org.apache.mahout.math.VectorWritable; 
import org.apache.mahout.clustering.kmeans.Kluster; 
import org.apache.mahout.clustering.classify.WeightedVectorWritable; 
import org.apache.mahout.clustering.kmeans.KMeansDriver; 
import org.apache.mahout.common.distance.EuclideanDistanceMeasure; 

public class SimpleKMeansClustering { 
    public static final double[][] points = { {1, 1}, {2, 1}, {1, 2}, 
               {2, 2}, {3, 3}, {8, 8}, 
               {9, 8}, {8, 9}, {9, 9}};  


    public static void writePointsToFile(List<Vector> points, 
      String fileName,FileSystem fs,Configuration conf) throws IOException {  
     Path path = new Path(fileName);  
     @SuppressWarnings("deprecation") 
     SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,path, LongWritable.class, VectorWritable.class);  

     long recNum = 0;  
     VectorWritable vec = new VectorWritable();  
     for (Vector point : points) {  
     vec.set(point);  
      writer.append(new LongWritable(recNum++), vec);  
     } writer.close(); 
    }  

    public static List<Vector> getPoints(double[][] raw) {  
     List<Vector> points = new ArrayList<Vector>();  
     for (int i = 0; i < raw.length; i++) {  
      double[] fr = raw[i];  
      Vector vec = new RandomAccessSparseVector(fr.length);  
      vec.assign(fr);  
      points.add(vec);  
     }  
     return points; 
    }  
    public static void main(String args[]) throws Exception {   
     int k = 2;   
     List<Vector> vectors = getPoints(points);   
     File testData = new File("testdata");  
     if (!testData.exists()) {  
      testData.mkdir();  
     }  
     testData = new File("testdata/points");  
     if (!testData.exists()) {  
      testData.mkdir();  
     }   
     Configuration conf = new Configuration();  
     FileSystem fs = FileSystem.get(conf);  
     writePointsToFile(vectors, "testdata/points/file1", fs, conf);   
     Path path = new Path("testdata/clusters/part-00000");  
     @SuppressWarnings("deprecation") 
     SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,path, Text.class, Kluster.class); 
     for (int i = 0; i < k; i++) {  
      Vector vec = vectors.get(i);  
      Kluster cluster = new Kluster(vec, i, new EuclideanDistanceMeasure());  
      writer.append(new Text(cluster.getIdentifier()), cluster);  
     }  
     writer.close();   

     KMeansDriver.run(conf, new Path("testdata/points"), new Path("testdata/clusters"),  
       new Path("output"), new EuclideanDistanceMeasure(), 0.001, 10, 
       true,0.0, false);   
     @SuppressWarnings("deprecation") 
     SequenceFile.Reader reader = new SequenceFile.Reader(fs,new Path("output/" + Kluster.CLUSTERED_POINTS_DIR+ "/part-m-00000"), conf);   
     IntWritable key = new IntWritable(); 
     WeightedVectorWritable value = new WeightedVectorWritable();  
     while (reader.next(key, value)) {  
      System.out.println(value.toString() + " belongs to cluster " + key.toString());  
     }  
     reader.close(); 
    } 
} 

사람이 ...

이 저를 인도 할 수

답변

관련 문제