2013-09-11 6 views
0

으로 캐스팅 할 수 없습니다두싯 minhash org.apache.hadoop.io.LongWritable은 내가 사용하고 org.apache.hadoop.io.Text

하둡-1.2.1 및 조련사 - 유통 - 0.8

나는 다음과 같은 명령을 HASHMIN 방법을 실행하려고하면 : 나는 어떤을 주셔서 감사합니다

[email protected]:~$ $MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.minhash.MinHashDriver -i tce-data/cv.vec -o tce-data/out/cv/minHashDriver/ -ow 
Warning: $HADOOP_HOME is deprecated. 

Running on hadoop, using /home/tce/app/hadoop-1.2.1/bin/hadoop and HADOOP_CONF_DIR= 
MAHOUT-JOB: /home/tce/app/mahout-distribution-0.8/mahout-examples-0.8-job.jar 
Warning: $HADOOP_HOME is deprecated. 

13/09/10 18:17:46 WARN driver.MahoutDriver: No org.apache.mahout.clustering.minhash.MinHashDriver.props found on classpath, will use command-line arguments only 
13/09/10 18:17:46 INFO common.AbstractJob: Command line arguments: {--endPhase=[2147483647], --hashType=[MURMUR], --input=[tce-data/cv.vec], --keyGroups=[2], --minClusterSize=[10], --minVectorSize=[5], --numHashFunctions=[10], --numReducers=[2], --output=[tce-data/out/cv/minHashDriver/], --overwrite=null, --startPhase=[0], --tempDir=[temp], --vectorDimensionToHash=[value]} 
13/09/10 18:17:48 INFO input.FileInputFormat: Total input paths to process : 1 
13/09/10 18:17:50 INFO mapred.JobClient: Running job: job_201309101645_0031 
13/09/10 18:17:51 INFO mapred.JobClient: map 0% reduce 0% 
13/09/10 18:18:27 INFO mapred.JobClient: Task Id : attempt_201309101645_0031_m_000000_0, Status : FAILED 
java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.Text 
    at org.apache.mahout.clustering.minhash.MinHashMapper.map(MinHashMapper.java:30) 
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
    at org.apache.hadoop.mapred.Child.main(Child.java:249) 

:

$MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.minhash.MinHashDriver -i tce-data/cv.vec -o tce-data/out/cv/minHashDriver/ -ow 

나는이 오류 job.setOutputKeyClass, job.setOutputValueClass, J ob.setMapOutputKeyClassjob.setMapOutputValueClass 각각 감속기 키, 감속기 값 매퍼 키와 매퍼 값 클래스와 일치해야합니다 귀하의 생각

+0

http://stackoverflow.com/questions/14922087/hadoop-longwritable-cannot-be-cast-to-org-apache-hadoop-io- 수 확장해야 intwritable http://stackoverflow.com/questions/11784729/hadoop-java-lang-classcastexception-org-apache-hadoop-io-longwritable-cannot – Sandip

+0

@Sandip에 감사하지만 지금은 맞춤 프로그래밍이 없습니다. 아마 예제에만 따르고, 아마도 버전에 문제가있을 수 있습니다. – Osy

답변

0

그리고 크로스 체크 몇 가지.

Stacktrace에 Mapper에 불일치가 있다고 표시됩니다. 귀하의 MinHashMapperMapper<[A, B, C, D >]CD이 같은 job.setMapOutputKeyClass(C)로하고 job.setMapOutputValueClass(D)