基于Spark的逻辑回归实验

spark是基于hadoop的一个开源平台,最新的spark已经可以支持很多分布式的机器学习算法,这里用逻辑回归算法来初步接触这个平台。spark的安装步骤已经由师兄完成,暂时没了解,不过看官网(http://spark.apache.org/)的文档还是很简单的,直接下载已有的安装包就行。系统是linux,spark版本为1.5.2,准备基于官网自带的逻辑回归样例进行改编。

首先需要明确,一般来说spark可以支持scala、python、R等多种语言,这里用的是scala的脚本。在spark安装目录下,执行bin/spark-shell可以启动scala脚本,然后可以逐行输入scala命令。另一种方式是直接编写如test.scala这样的脚本文件,然后交给spark-shell运行:./spark-shell < test.scala

以上说的是本地模式运行,而如果要远程执行,首先需要一个集群,实验室用的集群模式为

Spark Standalone

此集群有一个master和多个worker组成,这个是在安装之初就设置好的。启动这个集群的命令为./start-all或者其他,具体文档上也有说明。集群启动之后,就可以用spark-shell来进行命令行操作,不过需要加上一些参数:./spark-shell --master spark://masterIP:port,其中port默认为7077,具体可在Spark Standalone的文档里查询。

如果在执行时需要读写文件,则牵涉到spark的文件系统——HDFS,这个本质上是一个hadoop的文件系统,操纵该系统的命令为hadoop fs -command。如浏览本用户的目录:hadoop fs -ls /whx。再比如上传本地文件:hadoop fs -put localfile    /user/hadoop/hadoopfile。具体的可以查询hadoop shell命令

然后就是机器学习样例了,具体代码在官网上有,这里就不贴了,主要需要指出的是,scala好像没有类似fopen、fstream这些c++的文件功能,只能打开文件和储存model,但由于要记录函数运行时间,因此暂时用的方法是println直接输出到终端。不过这样一来就有另一个问题,那就是由于日志信息太多,但是命令行终端一次能显示的消息数有限,导致有用的消息被覆盖掉了。解决方法是:
导入下面两个包
import org.apache.log4j.Logger
import org.apache.log4j.Level
再设置消息提醒的级别,只有warning以上的才会在终端显示:
Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
然后就可以找到自己想要的提示了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值