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