java连接spark0.9.0_spark0.9.0安装

利用周末的时间安装学习了下最近很火的Spark0.9.0(江湖传言,要革hadoop命,O(∩_∩)O),并体验了该框架下的机器学习包MLlib(spark解决的一个重点就是高效的运行迭代算法),下面是整个安装过程(图文并茂)

说明:安装环境,centos64位12G的服务器

安装方式,单机伪分布式版

一,安装JDK

由于机器之前已经安装了jdk1.7.0,此步骤略去,网上可以搜到很多安装教程。

二,安装Hadoop

我这里安装的是hadoop2.2.0

第1步,添加hadoop用户(可选)

d919afd8d5c8f87e45e776fd9e2923af.png

第2步,ssh免密码登陆

首先,安装Openssh

77279167a59be140640b4198cacbe980.png

然后,设置ssh的免密码登陆

c725e2f0719c53712ea919cfd19950bd.png

红框的是输入了key存放的路径位置。

然后,cd到这个目录下

8cb392a496b326d96db6d598c9a0a352.png

输入后,chmod 600 authorized_keys

最后验证,是否可以免密码登陆

ae826f665972ddf6ea57074ba8a6a435.png

第3步,hadoop2.2.0安装

用户wget命令下载hadoop

$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz

解压到目录里面(我解压的目录是:/home/hadoop/)

$ vim ~/.bashrc

export HADOOP_PREFIX=/home/hadoop/hadoop-2.2.0

export

HADOOP_COMMON_HOME=$HADOOP_PREFIX

export

HADOOP_HDFS_HOME=$HADOOP_PREFIX

export

HADOOP_MAPRED_HOME=$HADOOP_PREFIX

export

HADOOP_YARN_HOME=$HADOOP_PREFIX

export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop

export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

修改配置hadoop-env.sh,把java路径写进去

20159d5c5eb8a7ddd25ffb230daa30fe.png

修改配置core-site.xml

c4627cf192597fc2e27b4ee165cf1ff6.png

修改配置hdfs-site.xml

bdefd93243d79b6cd879fcd269810be0.png

修改配置mapred-site.xml

db8027c8a3e8be4ab64426abf6be68d4.png

namenode格式化

bin/hdfs namenode -format

启动namenode,datanode,resourcemanager,nodemanager

e3c1aebf9ba45f7090d24d499e5a837b.png

第4步,Spark0.9.0安装

第一步,下载安装scala

解压scala,放到/usr/lib下面

修改环境变量  vim /etc/profile

5c95436796c6b1f38b13913d60409c09.png

修改完成之后source /etc/profile

第二步,下载安装spark

解压spark,tar -zxvf spark-0.9.0-incubating-bin-hadoop2.tgz

修改环境变量,在/etc/profile里面加上spark目录5409f2d49d781bbc218b5f7d855ea2d5.png

修改完后,source /etc/profile

打开hadoop,namenode,datanode,resourcemanager,nodemanager

打开spark里面sbin下面的start-all.sh

c71cdf0cce291ca2a968c8bcbb5fbb23.png

至此,单机版的spark环境已经搭建完成了,下面体验下spark自带的例子,计算圆周率pi

在bin目录下,执行./run-example org.apache.spark.examples.SparkPi

运行结果如下

d335e2f6bca2d062237d868728b71be4.png

算出来pi=3.1362

体验MLlib

MLlib目前包括分类(LR,SVM,NB)、聚类(Kmeans)、推荐(ALS,MF)三大模块,关于这些算法,官网也给了些例子,目前包含有scala,java,python三种API,http://spark.apache.org/docs/0.9.0/mllib-guide.html,先试试LR

08a85c594c2a2bce3a5dd45f9a34f359.png

第一种方法是:可以在pyspark shell 上一行一行运行,如下图所示

7e39ca31070c1c3e6b8d28960b420752.png

类似跟python shell一样,一行一行执行,不过要注意的地方就是,上面代码中的sc.textFile(),最好写本文文件的全路径

还有一种方法是:把代码写成*.py文件,然后通过bin/pyspark *.py的方式来执行

1 from pyspark.mllib.classification importLogisticRegressionWithSGD2 from numpy importarray3 from pyspark.context importSparkContext4 #一定要创建sparkcontext(该类定义请参考文档),上一个方法因为在pyspark shell上,已经自定了SparkContext

5 sc=SparkContext('local','test')6 #Load and parse the data

7 data = sc.textFile("/home/hadoop/spark-0.9.0/mllib/data/sample_svm_data.txt")8 parsedData = data.map(lambda line: array([float(x) for x in line.split(' ')]))9 model =LogisticRegressionWithSGD.train(parsedData)10

11 #Build the model

12 labelsAndPreds = parsedData.map(lambdapoint: (int(point.item(0)),13 model.predict(point.take(range(1, point.size)))))14

15 #Evaluating the model on training data

16 trainErr = labelsAndPreds.filter(lambda (v, p): v != p).count() /float(parsedData.count())17 print("Training Error =" + str(trainErr))

执行的结果如下所示,

9cfc730a4e7695f6938a6247b03659b2.png

给出了逻辑回归里面的回归系数跟截距项,最后分类结果如下

1a10dbd41a7ef0c618c5b42528eaa449.png

得到的训练错误率为39.8%,可以看到用的时间还是非常快的,OK,其他的算法,也可以通过类似的方式体验了,整个MLlib使用起来还是相当的简单,代码量也小,接下来,学习下里面的机器学习算法源代码(现实使用需要结合业务特点,去修改里面的一些源码)。

本篇完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值