之前在用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. plsql 安装后database下拉没有东西

    今天第一天上班我自己也有点紧张,但是问题还是有的: 今天来说一下问题,就是装了plsql竟然在database这一栏没有东西,我也是纠结了很久,感觉今天的任务也被拉下了. 其实这个问题在我以前装的时候 ...

  2. mybatis 的一点问题

    写法1:   public User queryUserByUsername(String username); 写法2:   public User queryUserByUsername(@Par ...

  3. NoSql的产生

    主流的关系型数据库:Microsoft SQLServer, IBM DB2, Oracle, MySQL, Microsoft Access, Sybase,IBM Informix 随着互联网we ...

  4. Java导出Excel表(poi)名中文乱码问题处理

    <pre name="code" class="java">String _filename = ValidateTools.date2Str(da ...

  5. 【转】对于JNI方法名,数据类型和方法签名的一些认识

    [转]对于JNI方法名,数据类型和方法签名的一些认识   之前一直用jni,但是没有考虑Java重载函数,如何在jni-C++里命名,今天看到一篇文章,讲到了类型签名. 原文链接:http://www ...

  6. 初探JavaScript魅力(五)

    JS简易日历    innerHTML <title>无标题文档</title> <script> var neirong=['一','二','三','四','五' ...

  7. java 多线程机制

    Example12_1.java public class Example12_1 { public static void main(String args[]) { //主线程 SpeakElep ...

  8. Linux关闭防火墙,关闭Selinux

    查看防火墙状态 iptables -L or service iptables status 临时性关闭防火墙 iptables -F or service iptables stop 永久性关闭防火 ...

  9. ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.

    http://javag.iteye.com/blog/403097 ArrayList遍历的同时删除-- 删除还是用迭代器的比较好,其它的都会有问题.     博客分类: 随笔 Javathread ...

  10. Codeforces Round #361 (Div. 2) C.NP-Hard Problem

    题目连接:http://codeforces.com/contest/688/problem/C 题意:给你一些边,问你能否构成一个二分图 题解:二分图:二分图又称作二部图,是图论中的一种特殊模型. ...