Spark1.3.0安装配置及WordCount示例

最近尝试搭建spark开发环境,简单记录一下过程,后期有时间再完善。

Spark 简介


 spark是一个快速通用的大规模数据处理引擎。
   
  快速:spark在内存中的运行速度比Hadoop MapReduce快100倍,比在    磁盘上的处理速度快10倍;

  易于使用:支持Java,Python,Scala和R语言。

  普遍性:apache spark 提供了 spark sql、spark streaming、mlib 和 graph等多种形式进行操作;

  多平台运行:spark可以运行在hadoop、mesos、standalone或者cloud上。spark可以访问不同的数据源,如hdfs、cassandra、hbase和S3.


Spark安装配置

作为一个开源的框架,Spark在使用之前需要自己进行编译,spark  maven工程下载地址为 https://github.com/apache/spark。Spark打包有多种方式,其中之一是使用工程中自带的shell脚本  make-distribution.sh 。

 针对Apache版本的Hadoop(Hadoop2.x版本)编译

  
  . make-distribution.sh -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.0 -Phive -Phive-thriftserver
针对CDH5.x版本的Hadoop编译

    .make-distribution.sh --tgz -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.6 -Phive -Phive-thriftserver

编译成功后会在当前路径下生成名为spark-1.3.0-bin-2.5.0的tar包。

由于spark是scala编写的,所以安装spark之前需要先安装scala,版本为2.10.4。 解压后在/etc/profile文件中配置scala_home环境变量,然后  source  /etc/profile,使用scala -version查看成功结果。

     [zpl@zpl-hadoop zookeeper-3.4.5]$ echo ${SCALA_HOME}
        /home/zpl/software/scala-2.10.4
           

spark的常用运行模式有  local、standalone和yarn 。

解压完成后修改配置文件

1,将log4j.properties.template重命名为log4j.properties;
2,在  spark-env.sh  中配置 JAVA_HOME、SCALA_HOME以及hadoop配置路径:
      JAVA_HOME=/home/zpl/Downloads/jdk1.7.0_67
      SCALA_HOME=/home/zpl/software/scala-2.10.4
      HADOOP_CONF_DIR=/home/zpl/software/hadoop-2.5.0/etc/hadoop
进入spark安装目录,运行命令 
           bin/spark-shell
spark context作为spark命令行的入口,初始时已经创建好实例,名称为sc,使用sc读取hdfs上的数据文件:

    var  rdd = sc.textFile("/wcinput/wc.input")

spark自动判断rdd为string类型,我们可以使用spark函数查看rdd信息,如:

      rdd.count
      rdd.first
      rdd.take(2) //取前两条数据
      rdd.collect  //把所有的数据变成集合
      rdd.filter(x=>x.contains("yarn")).collect //过滤
      rdd.cache  //将rdd加载到内存中去

对于每一个spark应用来说,都有一个web监控界面,端口号为4040,以后每个应用一次递加。
点击查看

运行wordcount程序

用函数将内容拆分成单个单词形式的数组,

     rdd.flatMap(x=>x.splie(" ")).collect

将每个单词组装成key/value形式

     rdd.flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey((x,y)=>(x+y)).collect

spark standalone 模式

standalone模式运行时包括主节点  master和多个从节点 work,
在 spark-env.sh中增加以下配置:
    SPARK_MASTER_IP=zpl-hadoop
    SPARK_MASTER_PORT=7077
    SPARK_MASTER_WEBUI_PORT=8080
    SPARK_WORKER_CORES=2
    SPARK_WORKER_MEMORY=2g
    SPARK_WORKER_PORT=7078
    SPARK_WORKER_WEBUI_PORT=8081
    SPARK_WORKER_INSTANCES=1

修改slave配置文件,因为当前只有一个节点,所以只增加当前主机名即可。  

启动时先启动master  
  
     sbin/start-master.sh  

再启动 slaves,注意是slaves而不是slave,

     sbin/start-slaves.sh 

再次启动shell时,需要加参数 --master,表明运行在spark上,

    bin/spark-shell.sh --master  spark://zpl-hadoop:7070 

 Spark应用请求过程。

       一个spark应用由一个driver program和多个executor组成,当客户端请求时,driver program 创建spark context,由sc生成的cluster manager(集群管理器)向集群申请资源,创建RDD等。Executor进程存在于work节点上,用来运行任务,executor中又有很多task,每一个task就是一个线程,是work发送到executor运行的最小单位。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值