Mahout初學者遇到的報錯及解決方案
Mahout是一個基于Hadoop的開源機器學習框架,但初學者在使用Mahout時可能會遇到各種報錯。本文將介紹一種常見的報錯No input clusters found in /user/hado
Mahout是一個基于Hadoop的開源機器學習框架,但初學者在使用Mahout時可能會遇到各種報錯。本文將介紹一種常見的報錯No input clusters found in /user/hadoop/sy-kmeans-clusters/part-randomSeed. Check your -c argument,并給出解決方案。
1. 報錯原因
當用戶運行Mahout聚類算法時,如果輸入的文件夾只有一個文本/文檔,就會出現如上所述的報錯。這是因為Mahout需要至少兩個輸入數據才能進行聚類。
2. 解決方案
出現該問題的解決方案主要有兩種:
2.1 更換Mahout版本
Mahout 0.9不支持Hadoop 2.X版本,可以編譯、打補丁或更換為Mahout 1.0以上版本。如果你使用的是Hadoop 2.X版本,請升級Mahout的版本。
2.2 對文本進行切分
如果你想繼續(xù)使用當前版本的Mahout,可以對輸入的文本進行切分。建議切分出來的文本大小不能過大,20M左右最佳。過大也有可能出現上述報錯,這與集群的配置有關??梢允褂胹plit命令把原文本/文檔切分為每個文本只有1000行的文本群,再把原文本/文檔刪除。
例如,使用命令"split -b 20m Test.txt split"或者"split -l 1000 -a5 --numeric-suffixes Test.txt split",可以將原文本/文檔分成多個小文件,每個文件都擁有足夠的數據用于聚類操作。
結論
以上就是Mahout初學者在使用聚類算法時遇到的一個常見報錯No input clusters found in /user/hadoop/sy-kmeans-clusters/part-randomSeed. Check your -c argument的解決方案。希望本文可以幫助到正在學習Mahout的讀者們。