1 使用mahout進行資料探勘

2021-08-25 12:35:39 字數 2482 閱讀 1636

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...