mahout使用:
步驟一:
tar -xvf mahout-0.3.tar.gz
需要指定hadoop的路徑和配置檔案的路徑
export hadoop_home=/home/hadoopuser/hadoop-0.19.2
export hadoop_conf_dir=/home/hadoopuser/hadoop-0.19.2/conf
步驟二:
通過這個命令可以檢視mahout提供了哪些演算法,以及如何使用
bin/mahout --help
bin/mahout kmeans --input /user/hive/warehouse/tmp_data/complex.seq --clusters 5 --output /home/hadoopuser/1.txt
mahout下處理的檔案必須是sequencefile格式的,所以需要把txtfile轉換成sequencefile。sequencefile是hadoop中的乙個類,允許我們向檔案中寫入二進位制的鍵值對,具體介紹請看
eyjian寫的
mahout中提供了一種將指定檔案下的檔案轉換成sequencefile的方式。
(you may find tika ( helpful in converting binary documents to text.)
使用方法如下:
$mahout_home/bin/mahout seqdirectory \
--input --output \
<-c > \
<-chunk 64> \
<-prefix >
舉個例子:
bin/mahout seqdirectory --input /hive/hadoopuser/ --output /mahout/seq/ --charset utf-8
步驟三:
執行kmeans的簡單的例子:
1:將樣本資料集放到hdfs中指定檔案下,應該在testdata資料夾下
$hadoop_home/bin/hadoop fs -put testdata
例如:bin/hadoop fs -put /home/hadoopuser/mahout-0.3/test/synthetic_control.data /user/hadoopuser/testdata/
2:使用kmeans演算法
$hadoop_home/bin/hadoop jar $mahout_home/examples/target/mahout-examples-$mahout_version.job org.apache.mahout.clustering.syntheticcontrol.kmeans.job
例如:bin/hadoop jar /home/hadoopuser/mahout-0.3/mahout-examples-0.1.job org.apache.mahout.clustering.syntheticcontrol.kmeans.job
3:使用canopy演算法
$hadoop_home/bin/hadoop jar $mahout_home/examples/target/mahout-examples-$mahout_version.job org.apache.mahout.clustering.syntheticcontrol.canopy.job
例如:bin/hadoop jar /home/hadoopuser/mahout-0.3/mahout-examples-0.1.job org.apache.mahout.clustering.syntheticcontrol.canopy.job
4:使用dirichlet 演算法
$hadoop_home/bin/hadoop jar $mahout_home/examples/target/mahout-examples-$mahout_version.job org.apache.mahout.clustering.syntheticcontrol.dirichlet.job
5:使用meanshift演算法
meanshift : $hadoop_home/bin/hadoop jar $mahout_home/examples/target/mahout-examples-$mahout_version.job org.apache.mahout.clustering.syntheticcontrol.meanshift.job
6:檢視一下結果吧
bin/mahout vectordump --seqfile /user/hadoopuser/output/data/part-00000
這個直接把結果顯示在控制台上。
可以到hdfs中去看看資料是什麼樣子的
上面跑的例子大多以testdata作為輸入和輸出資料夾名
可以使用bin/hadoop fs -lsr 來檢視所有的輸出結果
kmeans 方法的輸出結果在 output/points
canopy 和 meanshift 結果放在了 output/clustered-points
使用mahout做海量資料關聯規則挖掘
mahout是乙個基於hadoop的分布式資料探勘開源專案 mahout本來是指乙個騎在大象上的人 掌握了關聯規則的基本演算法和使用,加上分布式關聯規則挖掘後,就可以處理基本的關聯規則挖掘工作了,實踐中只需要把握業務,理解資料便可游刃有餘。安裝mahout 騎在大象上的俠士必然需要一頭雄糾糾的大象,...
使用Python進行資料探勘的程式設計問題雜錦
1 成功安裝pandas等模組後,編譯器還是提示 modules pandas has no attribute series 2 編譯器提示 convergencewarning liblinear failed to converge,increase the number of iterati...
使用python指令碼進行資料清洗(1)
1.原始表create table ml 100k userid int,movieid int,rating int unixtime string row format delimited fields terminated by t lines terminated by n stored a...