안녕하세요. 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();
}
}
사람이 ...
이 저를 인도 할 수