[
https://issues.apache.org/jira/browse/MAHOUT-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13679777#comment-13679777
]
Jake Mannix commented on MAHOUT-1147:
-------------------------------------
So I'm running cluster-reuters.sh with this patch added now, and unrelated to
this patch, I'm seeing that since I have a pseudo-distributed setup (hadoop
running for real on my laptop), I'm seeing that cluster-reuters.sh totally
breaks in a silent and lame way: it unpacks the reuters data to a local
directory, but then when it runs the vectorization jobs, they're running on
hadoop, assuming that the paths which were unpacked locally with reuters data
exist, but while /tmp/mahout-work-jake/reuters-out exists on the real FS, it
isn't on HDFS, and the job "tokenizes" a bunch of empty vectors, creates an
empty dictionary, and then tries to run LDA on the empty matrix, producing a
bunch of empty topic models. Silent empty failure. Way lame.
Appears to be running better now that I manually ran "hadoop dfs -put
/tmp/mahout-work-jake/reuters-out /tmp/mahout-work-jake" before rerunning.
> CVB Bug in CVB0Driver causes doc/topic distributions to be trained on random
> matrix
> -----------------------------------------------------------------------------------
>
> Key: MAHOUT-1147
> URL: https://issues.apache.org/jira/browse/MAHOUT-1147
> Project: Mahout
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 0.7
> Environment: Eclipse IDE
> Java code base
> CVB0Driver Class
> setModelPaths(Job job, Path modelPath) - method
> Reporter: Jack Pay
> Assignee: Jake Mannix
> Labels: bug, cvb, fix, suggestion
> Fix For: 0.8
>
> Attachments: MAHOUT-1147.patch, MAHOUT-1147.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> Problem:
> When training doc/topic model no paths for the term/topic model found
> (outputs null).
> These paths are set using setModelPaths in CVB0Driver.
> Reason for Problem:
> Variety of Job instances call this method.
> The Job is passed to the method instead of the Configuration object given to
> the Job.
> The configuration is retrieved from the Job instance itself.
> I believe that this Configuration instance is a clone of the original.
> This is a problem as the variable MODEL_PATHS is set on the clone which is
> then discarded when the given Job is complete.
> The original Configuration has no MODEL_PATHS String set and therefore
> returns null.
> The code stipulates that if it cannot find a model to use a new random
> matrix. This happens every time as MODEL_PATHS is not set for the
> Configuration instance used.
> Solution:
> Do not pass the Job to the setModels method, but pass the Configuration
> instance passed into the method which created the Job.
> i.e.
> change from:
> setModelPaths(Job job, Path modelPath)
> to:
> setModelPaths(Configuration conf, Path modelPath)
> And change all calling methods accordingly (obviously).
> So far what little testing I have done appears to solve this problem.
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira