You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Nikolaos Romanos Katsipoulakis <po...@gmail.com> on 2012/05/29 13:27:40 UTC
RecommenderJob Hadoop execution times
Hey everybody.
I am working on a recommender system that uses Hadoop for generating
Item Similarities. Since mahout has the RecommenderJob example, I tried
to run the recommender in my hadoop (pseudo-) cluster. I noticed that on
the MapReduce job : CoocurencesMapper - SimilarityReducer, there is a
big overhead (approximately 6 minutes). When the mapping ends, there is
a huge time gap until the reducer initiates, but one CPU was fully
loaded during that time. Why is this happening? Is there an I/O
operation hidden on this time gap?
Thank you
Re: RecommenderJob Hadoop execution times
Posted by Nikolaos Romanos Katsipoulakis <po...@gmail.com>.
On 05/30/2012 01:28 PM, Sebastian Schelter wrote:
> We have a specialized job called ItemSimilarityJob which only computes
> the item similarities.
>
> --sebastian
>
> On 30.05.2012 12:25, Nikolaos Romanos Katsipoulakis wrote:
>> On 05/29/2012 03:23 PM, Sean Owen wrote:
>>> I am almost certain it is the combiner phase. The mappers are locally
>>> "compacting" the output so much less must be sent to the reducer. You can
>>> often speed it up by increasing io.sort.factor (merge more ways) and
>>> io.sort.mb (give more space for merging in memory).
>>>
>>> On Tue, May 29, 2012 at 12:27 PM, Nikolaos Romanos Katsipoulakis<
>>> popanik@gmail.com> wrote:
>>>
>>>> Hey everybody.
>>>> I am working on a recommender system that uses Hadoop for generating
>>>> Item
>>>> Similarities. Since mahout has the RecommenderJob example, I tried to
>>>> run
>>>> the recommender in my hadoop (pseudo-) cluster. I noticed that on the
>>>> MapReduce job : CoocurencesMapper - SimilarityReducer, there is a big
>>>> overhead (approximately 6 minutes). When the mapping ends, there is a
>>>> huge
>>>> time gap until the reducer initiates, but one CPU was fully loaded
>>>> during
>>>> that time. Why is this happening? Is there an I/O operation hidden on
>>>> this
>>>> time gap?
>>>>
>>>> Thank you
>>>>
>> I tried to change the code from the RecommenderJob setIOSort method, but
>> I noticed no change in the execution times. Maybe i will have to change
>> the heap size from the hadoop configuration file. Also, I would like to
>> ask you until which map-reduce job are the similarities computed? I need
>> to get the similarities for my application but not the recommendations.
>> Thus, I would like to exclude any computation that relates to the
>> recommendation.
>>
>> Thank you
Oh thank you. Haven't noticed it :)
Re: RecommenderJob Hadoop execution times
Posted by Sebastian Schelter <ss...@apache.org>.
We have a specialized job called ItemSimilarityJob which only computes
the item similarities.
--sebastian
On 30.05.2012 12:25, Nikolaos Romanos Katsipoulakis wrote:
> On 05/29/2012 03:23 PM, Sean Owen wrote:
>> I am almost certain it is the combiner phase. The mappers are locally
>> "compacting" the output so much less must be sent to the reducer. You can
>> often speed it up by increasing io.sort.factor (merge more ways) and
>> io.sort.mb (give more space for merging in memory).
>>
>> On Tue, May 29, 2012 at 12:27 PM, Nikolaos Romanos Katsipoulakis<
>> popanik@gmail.com> wrote:
>>
>>> Hey everybody.
>>> I am working on a recommender system that uses Hadoop for generating
>>> Item
>>> Similarities. Since mahout has the RecommenderJob example, I tried to
>>> run
>>> the recommender in my hadoop (pseudo-) cluster. I noticed that on the
>>> MapReduce job : CoocurencesMapper - SimilarityReducer, there is a big
>>> overhead (approximately 6 minutes). When the mapping ends, there is a
>>> huge
>>> time gap until the reducer initiates, but one CPU was fully loaded
>>> during
>>> that time. Why is this happening? Is there an I/O operation hidden on
>>> this
>>> time gap?
>>>
>>> Thank you
>>>
> I tried to change the code from the RecommenderJob setIOSort method, but
> I noticed no change in the execution times. Maybe i will have to change
> the heap size from the hadoop configuration file. Also, I would like to
> ask you until which map-reduce job are the similarities computed? I need
> to get the similarities for my application but not the recommendations.
> Thus, I would like to exclude any computation that relates to the
> recommendation.
>
> Thank you
Re: RecommenderJob Hadoop execution times
Posted by Nikolaos Romanos Katsipoulakis <po...@gmail.com>.
On 05/30/2012 01:29 PM, Sean Owen wrote:
> I don't know if you'd observe much difference -- it's not a "bug". It does
> take time to combine the records. It would take longer if you didn't. Heap
> size is not relevant here, but yes that is a function of the Hadoop config.
> Have a look at the source code to see what generates which output and where.
>
> On Wed, May 30, 2012 at 11:25 AM, Nikolaos Romanos Katsipoulakis<
> popanik@gmail.com> wrote:
>>
>>>> I tried to change the code from the RecommenderJob setIOSort method,
>> but I noticed no change in the execution times. Maybe i will have to change
>> the heap size from the hadoop configuration file. Also, I would like to ask
>> you until which map-reduce job are the similarities computed? I need to get
>> the similarities for my application but not the recommendations. Thus, I
>> would like to exclude any computation that relates to the recommendation.
>>
>> Thank you
>>
Ok. Thank you for your immediate and accurate responses. I will examine
the code thoroughly then.
Again thank you.
Nick Katsipoulakis
Re: RecommenderJob Hadoop execution times
Posted by Sean Owen <sr...@gmail.com>.
I don't know if you'd observe much difference -- it's not a "bug". It does
take time to combine the records. It would take longer if you didn't. Heap
size is not relevant here, but yes that is a function of the Hadoop config.
Have a look at the source code to see what generates which output and where.
On Wed, May 30, 2012 at 11:25 AM, Nikolaos Romanos Katsipoulakis <
popanik@gmail.com> wrote:
>
>
>>> I tried to change the code from the RecommenderJob setIOSort method,
> but I noticed no change in the execution times. Maybe i will have to change
> the heap size from the hadoop configuration file. Also, I would like to ask
> you until which map-reduce job are the similarities computed? I need to get
> the similarities for my application but not the recommendations. Thus, I
> would like to exclude any computation that relates to the recommendation.
>
> Thank you
>
Re: RecommenderJob Hadoop execution times
Posted by Nikolaos Romanos Katsipoulakis <po...@gmail.com>.
On 05/29/2012 03:23 PM, Sean Owen wrote:
> I am almost certain it is the combiner phase. The mappers are locally
> "compacting" the output so much less must be sent to the reducer. You can
> often speed it up by increasing io.sort.factor (merge more ways) and
> io.sort.mb (give more space for merging in memory).
>
> On Tue, May 29, 2012 at 12:27 PM, Nikolaos Romanos Katsipoulakis<
> popanik@gmail.com> wrote:
>
>> Hey everybody.
>> I am working on a recommender system that uses Hadoop for generating Item
>> Similarities. Since mahout has the RecommenderJob example, I tried to run
>> the recommender in my hadoop (pseudo-) cluster. I noticed that on the
>> MapReduce job : CoocurencesMapper - SimilarityReducer, there is a big
>> overhead (approximately 6 minutes). When the mapping ends, there is a huge
>> time gap until the reducer initiates, but one CPU was fully loaded during
>> that time. Why is this happening? Is there an I/O operation hidden on this
>> time gap?
>>
>> Thank you
>>
I tried to change the code from the RecommenderJob setIOSort method, but
I noticed no change in the execution times. Maybe i will have to change
the heap size from the hadoop configuration file. Also, I would like to
ask you until which map-reduce job are the similarities computed? I need
to get the similarities for my application but not the recommendations.
Thus, I would like to exclude any computation that relates to the
recommendation.
Thank you
Re: RecommenderJob Hadoop execution times
Posted by Sean Owen <sr...@gmail.com>.
I am almost certain it is the combiner phase. The mappers are locally
"compacting" the output so much less must be sent to the reducer. You can
often speed it up by increasing io.sort.factor (merge more ways) and
io.sort.mb (give more space for merging in memory).
On Tue, May 29, 2012 at 12:27 PM, Nikolaos Romanos Katsipoulakis <
popanik@gmail.com> wrote:
> Hey everybody.
> I am working on a recommender system that uses Hadoop for generating Item
> Similarities. Since mahout has the RecommenderJob example, I tried to run
> the recommender in my hadoop (pseudo-) cluster. I noticed that on the
> MapReduce job : CoocurencesMapper - SimilarityReducer, there is a big
> overhead (approximately 6 minutes). When the mapping ends, there is a huge
> time gap until the reducer initiates, but one CPU was fully loaded during
> that time. Why is this happening? Is there an I/O operation hidden on this
> time gap?
>
> Thank you
>