之前在用Hadoop写ML算法的时候就隐约感觉Hadoop实在是不适合ML这些比较复杂的算法。记得当时写完kmeans后,发现每个job完成后都需要将结果放在HDFS中,然后下次迭代的时候再从文件中读取,对于kmeans这种高迭代的算法,感觉Hadoop的瓶颈会出现在IO上,后来又写了个Naive bayes,这种非常简单的算法,用Hadoop写,由于只有一种mapreduce范式,完全感觉到力不从心,为了处理这些简单的格式,总共用了4个mapreduce才完成,哭了。后面的logistics Regress等等只会让Hadoop更加难堪。

之前一直听spark如何虐Hadoop,但是舍友说spark只是因为在内存上跑,必然玩爆Hadoop,所以当时潜意识认为spark是内存版的Hadoop,昨天无意中看到关于spark的RDD的论文,感觉spark很适合写ML,并且性能比Hadoop好也并不全是因为在内存上跑,他所解决的问题刚好也是我在写Hadoop时候不想遇到的问题。同时spark最近这段时间这么火爆,没有理由不尝试下。

总的来说安装spark是比较简单的,可能是因为之前已经装了Hadoop。

由于我已经装了Hadoop2.4了,所以下了spark-1.3.0-bin-hadoop2.4。安装spark还需要有jdk,python,scala。因为装Hadoop的时候已经装了jdk和python了,所以只介绍下安装scala和spark

1 安装scala

下载scala-2.10.5

将其放置你的某个目录下,我这里是/home/Scala

接着解压缩

tar -xvzf scala-2.10.5.tgz

接着就是添加路径名

vi /etc/profile

增加两行

export SCALA_HOME=/home/Scala/scala-2.10.5

export PATH=$PATH:$SCALA_HOME/bin

接着便是立即生效

source /etc/profile

验证方式和java很像

scala -version

如果正确安装了,就会出现

Scala code runner version 2.10.5 --Copyright 2002-2013等信息

接着就可以将scala拷贝到另外几个节点上,我这里是两个节点,并且记得修改对应节点的profile文件

安装spark

同理,下载spark-1.3.0-bin-hadoop2.4。这里的Hadoop是根据你机子上的Hadoop版本来的,目前最新的spark版本是1.4,相比1.3最明显的就是增加了对R语言的支持,由于目前还用不到R,加之实验室机房不让用外网,安装R语言又比较麻烦,所以下载1.3.0了。

将spark-1.3.0-bin-hadoop2.4放置到你的某个目录下。例如我这里是/home/Spark/

解压缩

tar -xvzf spark-1.3.0-bin-hadoop2.4.tgz

接着是增加路径

vi /etc/profile

export SPARK_HOME=/home/Spark/spark-1.3.0-bin-hadoop2.4

export PATH=$PATH:$SPARK_HOME/bin

然后令其生效

source /etc/profile

接着是修改配置文件

1 添加从节点IP

vi slaves

我这里添加了两个节点

10.107.8.110

10.107.8.120

2

修改spark的环境,主要是jdk,scala以及Hadoop的路径,master的IP

添加:

export JAVA_HOME=(你自己的jdk路径,如果不清楚可以在shell中打$JAVA_HOME)

export SCALA_HOME=(你的scala路径)

export SPARK_MASTER_IP=(master的hostname)

export SPARK_WORKER_MEMORY=4g(这个具体看你节点的配置了)

export HADOOP_CONF_DIR=(如果不清楚可以在shell打$HADOOP_CONF_DIR)

接着就是将spark复制到另外的节点上就好了。

如果一切顺利,spark就算是安装完了。

简要验证

1 在浏览器上输入masterIP:8080例如我这里是http://10.107.8.110:8080/

会出现各个worker的节点状况

输入http://10.107.8.110:4040则会出现spark的jobs

2 进入到spark下的bin目录运行spark-shell

运行论文上的例子

我们先把一段文件放到HDFS中

hadoop fs -copyFromLocal /home/sunrye/words.txt hdfs://10.107.8.110:9000/spark_test/

接着运行

var lines=sv.textFile(“hdfs://10.107.8.110:9000/sprak_test/words.txt”)

此时相当于生成了一个RDD,接着就可以在RDD上实现各自action了,例如我们统计他的字数就可以

lines.count()

当然可也可查询某个关键字的字数,例如

lines.filter(_.contains(“the”)).count()

Spark1.3.0安装的更多相关文章

  1. spark1.2.0安装

    standalone 安装SCALA 下载.解压.加入环境变量 安装spark1.2.0 下载.解压.加入环境变量 tar zxvf spark--bin-.tgz export SPARK_HOME ...

  2. 最新版spark1.1.0集群安装配置

    和分布式文件系统和NoSQL数据库相比而言,spark集群的安装配置还算是比较简单的: 很多教程提到要安装java和scala,但我发现spark最新版本是包含scala的,JRE采用linux内嵌的 ...

  3. spark 1.6.0 安装与配置(spark1.6.0、Ubuntu14.04、hadoop2.6.0、scala2.10.6、jdk1.7)

    前几天刚着实研究spark,spark安装与配置是入门的关键,本人也是根据网上各位大神的教程,尝试配置,发现版本对应最为关键.现将自己的安装与配置过程介绍如下,如有兴趣的同学可以尝试安装.所谓工欲善其 ...

  4. spark1.1.0下使用SparkSQL

    spark1.1.0的安装参见http://blog.csdn.net/bluejoe2000/article/details/41391407 安装了spark之后,可以在 shell中执行Spar ...

  5. Apache Spark1.1.0部署与开发环境搭建

    Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce ...

  6. Spark1.5.0 + Hadoop2.7.1整合

    Hadoop2.7.1已经配置完毕. Hosts分配如下: master 172.16.15.140 slave1 172.15.15.141 slave2 172.16.15.142 一.安装Sca ...

  7. 搭建Hadoop2.6.0+Spark1.1.0集群环境

    前几篇文章主要介绍了单机模式的hadoop和spark的安装和配置,方便开发和调试.本文主要介绍,真正集群环境下hadoop和spark的安装和使用. 1. 环境准备 集群有三台机器: master: ...

  8. 在Win7虚拟机下搭建Hadoop2.6.0+Spark1.4.0单机环境

    Hadoop的安装和配置可以参考我之前的文章:在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境. 本篇介绍如何在Hadoop2.6.0基础上搭建spark1.4.0单机环境. 1. 软件准备 ...

  9. 记:MySQL 5.7.3.0 安装 全程截图

    前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...

随机推荐

  1. properties 配置文件如何换行

    在使用properties配置文件的时候我们经常碰到如下两个问题 1:当a=b中的b值内容特别长的时候为了阅读方便我们手动换行,但如果我们直接回车那么后面的数据就会丢失.那如何解决呢? 例如: a=a ...

  2. hiho#1128 : 二分·二分查找

    input 1<=n<=1e6 1<=k<=2*1e9 a1 a2 ... an 1<=an<=2*1e9 output k存在则输出k是第几大的数,否则输出-1 ...

  3. CodeIgniter 如何去掉 Index.php

    步骤; 1.打开你的WEB服务器的httpd.conf文件. 2.找到LoadModule rewrite_module modules/mod_rewrite.so这行,把该行前的#去掉.保存该文件 ...

  4. 为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口

    在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接 口.实现这两者的目的是为了向更上一层提供硬件访问接口,即 ...

  5. cocos2d-x-2.2.6创建工程

    1.下载并安装Python,我的版本是2.7.3,不要太高,据说不能用.2.配置环境变量,将Python的安装的根目录加入系统环境变量的Path路径中(不赘述,自行配置)3.配置好之后打开cmd命令行 ...

  6. POJ - 3666 Making the Grade(dp+离散化)

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  7. CodeForces 412D Giving Awards

    根据给出的条件建边,然后进行dfs 对于某个点x,当x的后继都遍历完毕后,再输出x节点. 这样能保证所有约束条件. #include<cstdio> #include<cstring ...

  8. PAT (Advanced Level) 1109. Group Photo (25)

    简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  9. Nginx反向代理使用【转载】

    最近工作中经常使用nginx,为了能够更好的使用nginx,我搜罗了很多nginx相关的技术文章来读,所以才有了下面以下内容.在此,为文中引用到和参考到的文章提供者表示感谢.如文中相关内容有错误,也欢 ...

  10. ural1147 Shaping Regions

    Shaping Regions Time limit: 0.5 secondMemory limit: 64 MB N opaque rectangles (1 ≤ N ≤ 1000) of vari ...