Mahout初學(xué)者遇到的報(bào)錯(cuò)及解決方案
Mahout是一個(gè)基于Hadoop的開源機(jī)器學(xué)習(xí)框架,但初學(xué)者在使用Mahout時(shí)可能會(huì)遇到各種報(bào)錯(cuò)。本文將介紹一種常見的報(bào)錯(cuò)No input clusters found in /user/hado
Mahout是一個(gè)基于Hadoop的開源機(jī)器學(xué)習(xí)框架,但初學(xué)者在使用Mahout時(shí)可能會(huì)遇到各種報(bào)錯(cuò)。本文將介紹一種常見的報(bào)錯(cuò)No input clusters found in /user/hadoop/sy-kmeans-clusters/part-randomSeed. Check your -c argument,并給出解決方案。
1. 報(bào)錯(cuò)原因
當(dāng)用戶運(yùn)行Mahout聚類算法時(shí),如果輸入的文件夾只有一個(gè)文本/文檔,就會(huì)出現(xiàn)如上所述的報(bào)錯(cuò)。這是因?yàn)镸ahout需要至少兩個(gè)輸入數(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)上述報(bào)錯(cuò),這與集群的配置有關(guān)??梢允褂胹plit命令把原文本/文檔切分為每個(gè)文本只有1000行的文本群,再把原文本/文檔刪除。
例如,使用命令"split -b 20m Test.txt split"或者"split -l 1000 -a5 --numeric-suffixes Test.txt split",可以將原文本/文檔分成多個(gè)小文件,每個(gè)文件都擁有足夠的數(shù)據(jù)用于聚類操作。
結(jié)論
以上就是Mahout初學(xué)者在使用聚類算法時(shí)遇到的一個(gè)常見報(bào)錯(cuò)No input clusters found in /user/hadoop/sy-kmeans-clusters/part-randomSeed. Check your -c argument的解決方案。希望本文可以幫助到正在學(xué)習(xí)Mahout的讀者們。