眼下,SPARK在大数据处理领域十分流行。尤其是对于大规模数据集上的机器学习算法。SPARK更具有优势。一下初步介绍SPARK在linux中的部署与使用,以及当中聚类算法的实现。
在官网
http://spark.apache.org/上直接下载编译好的tar安装包能够加快部署速度。
spark的执行依赖于scala2.10.4,注意此版本号一定要正确,否则spark不能正确执行。
1、scala的安装非常easy。在官网
http://www.scala-lang.org上下载安装包,解压到随意路径后。在linux中设置好环境变量后就可以使用(编辑profile文件)。
#scala by Ryne 2014.10.27
export PATH=/usr/share/scala-2.10.4/bin:$PATH
在shell里面输入scala能够正确执行即表示成功安装。
2、解压spark安装包后须要改动conf路径下的spark-env.sh文件,在当中配置好java和scala的路径后就可以执行。
export SCALA_HOME=/usr/share/scala-2.10.4
export JAVA_HOME=/usr/java/jre1.6.0_45
假设出现编码错误则还须要许改spark-defaults.conf文件,在该文件末尾添加下面内容就可以。
spark.io.compression.codec lzf
所有工作完毕后。执行bin/spark-shell就可以。
===========================切割线=====================================
spark中的聚类算法为kmeans。
须要导入的模块有
import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
读入文件
val data = sc.textFile("your file")
val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble)))
val clusters = KMeans.train(parsedData, numClusters, numIterations, parallRunNums)
就可以得到聚类结果。
//聚类中心
val clusterCenters=clusters.clusterCenters
//聚类结果标签
val labels=clusters.predict(parsedData)
//保存结果
labels.saveAsTextFile("。
。。")
==================================完===================================