今天我们来学习spark,spark是一种快速,通用,可扩展的大数据分析引擎,现已成为Apache顶级项目,Spark是MapReduce的替代方案,而且兼容HDFS,Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足,下面我们来介绍这样的一门语言:

  一.spark安装

    1.上传spark环境所需要的压缩包,

    这里面请记住我们要的是预编译包(prebuild版本),而不是源码包,即解压就可以使用的压缩包

    我们这个里面使用的是spark-1.6.1-bin-hadoop2.6.tgz,首先我们把它上传到Linux之中,并解压到系统中

    2.配置Spark

    进入Spark安装目录,进入conf目录并重命名spark-evn.sh.template文件

    cd conf/

    mv spark-env.sh.template spark-env.sh

    vi spark-env.sh

    在配置文件中添加如下配置

    export JAVA_HOME=/usr/java/jdk1.7.0_45(JAVA的安装路径)

    export SPARK_MASTER_IP=node1.itcast.cn(master的那台机器的IP,这个里面我们可以写ip:192.168.109.136)

    export SPARK_MASTER_PORT=7077

    保存退出

    重命名并修改slaves.template文件

    mv slave.template slaves

    vi slaves

    在该文件中添加子节点所在的位置(Worker节点)

    192.168.109.137

    192.168.109.138

    192.168.109.139

    保存退出

    将配置好的Spark拷贝到其他节点上

    scp -r spark-1.6.1 weekday02:/home/xxx/apps

    scp -r spark-1.6.1 weekday03:/home/xxx/apps

    scp -r spark-1.6.1 weekday04:/home/xxx/apps

    3.Spark集群配置完毕,目前是1个Master,3个Worker,在Master的那台主机上启动Spark集群

    /home/xxx/apps/spark-1.6.1/sbin/start-all.sh(这个一定要切记呀)

    启动后执行jps命令,主节点上有Master进程,其他节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://mast1的ip:8080即可

    注意,启动集群的时候,注意要关闭防火墙

  二,我的第一个spark程序

    这个里面我们只使用spark程序,这个算法是利用蒙特-卡罗算法求PI

/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://192.168.109.136:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/usr/local/spark-1.5.2-bin-hadoop2.6/lib/spark-examples-1.5.2-hadoop2.6.0.jar \
100

    这个也不需要hadoop的启动,只需要我们有了spark的环境即可

    参数说明

    -master spark://192.168.109.136:7077 指定Master地址

    -executor-memory 2g 指定每一个worker可以使用的内存是2G

    -total-executor-cores 2 指定整个集群使用的cpu核数是2

    注意:我们一般使用spark-shell,这个是spark自带交互式shell程序,方便用户进行交互式编程,用户可以在该命令下面使用scala编写spark程序

    例如:/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-shell,如果不写后面的,这个spark只能说是单机的,应为它没有与master的机器

    相连,跟别提和别人的连接

  三.在spark shell中编写WordCount程序

    1.首先启动HDFS

    2.向hdfs上传一个文件到hdfs://192.168.109.136:9000/words.txt

    3.在spark shell 中用scala语言写spark程序

    则此时这个结果在页面直接显示出来

sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
    .map(_,1).reduceByKey(_+_).collect

    则此时这个结果在hdfs的文件中显示出来

sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
    .map(_,1).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.109.136:9000/wc/out")

    则此时因为我们有三个子节点,所以就想hadoop的mapreduce,中三个reduce,则此时我们将其让

    最终的结果都读取到一个文件中去,此时我们就修改了一个地方,在reduceByKey(_+_)改为了reduceByKey(_+_,1)

sc.textFile("hdfs://192.168.109.136:9000/words.txt").flatMap(_.split(" "))
    .map(_,1).reduceByKey(_+_,1).saveAsTextFile("hdfs://192.168.109.136:9000/wc/out")

  四.spark算子

   spark算子一共分为两类

   一类叫做Transformation(转换),一类叫做Action(动作)

   Transformation延迟执行,Transformation会记录元数据信息,当任务触犯到Action才开始真正的执行

初见spark-01的更多相关文章

  1. [Spark] 01 - What is Spark

    大数据 云计算概念 课程:Spark编程基础(Python版) 大数据4V特性 Volumn, Variety, Velocity, Value. 思维方式 通过数据发现问题,再解决问题. 速度更重要 ...

  2. spark集群安装配置

    spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...

  3. 【概念、概述】Spark入门教程[1]

    本教程源于2016年3月出版书籍<Spark原理.机制及应用> ,如有兴趣,请支持正版书籍. 随着互联网为代表的信息技术深度发展,其背后由于历史积累产生了TB.PB甚至EB级数据量,由于传 ...

  4. Linux中安装配置spark集群

    一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...

  5. [Spark] 06 - What is Spark Streaming

    前言 Ref: 一文读懂 Spark 和 Spark Streaming[简明扼要的概览] 在讲解 "流计算" 之前,先做一个简单的回顾,亲! 一.MapReduce 的问题所在 ...

  6. [AI] 深度数据 - Data

    Data Engineering Data  Pipeline Outline [DE] How to learn Big Data[了解大数据] [DE] Pipeline for Data Eng ...

  7. 01、Spark安装与配置

    01.Spark安装与配置 1.hadoop回顾 Hadoop是分布式计算引擎,含有四大模块,common.hdfs.mapreduce和yarn. 2.并发和并行 并发通常指针对单个节点的应对多个请 ...

  8. Spark系列—01 Spark集群的安装

    一.概述 关于Spark是什么.为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org, 我就直接说一下Spark的一些优势: 1.快 与Hadoop的Ma ...

  9. python 自动化之路 day 01 人生若只如初见

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 Python 注释 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式i ...

  10. spark学习笔记01

    spark学习笔记01 1.课程目标 1.熟悉spark相关概念 2.搭建一个spark集群 3.编写简单spark应用程序 2.spark概述 spark是什么 是基于内存的分布式计算引擎,计算速度 ...

随机推荐

  1. iDempiere 使用指南 BOM及工单流程

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  2. java右移>> 无符号右移>>>

    >>>是无符号右移,在高位补零 >>是带符号的右移,如果是正数则在高位补零,负数则补1 int a = -1; System.out.println(a>>1 ...

  3. 二种方法安装卸载Windows服务的命令

    第一种方法:通过Dos命令安装系统服务1. 开始 运行输入 cmd 进入dos窗口2. cd命令进入到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下, ...

  4. 在 eclipse 中调出其内置的浏览器

    两种方法: 1.点击工具栏中的浏览器图标,就会在主面板中出现浏览器: 跳出一个blank页面,如下: 第二种方法:点击Window——Show view——Other 输入 "browser ...

  5. SPICE简史

    如今每一天都有不知其数的半导体芯片设计公司与设计验证工程师,在用着电路仿真软件SPICE.SPICE广泛应用在仿真模拟电路(例如运放Op Amp,能隙基准稳压电源Bandgap Reference,数 ...

  6. StringBuffer和StringBuilder区别?

    1. String是不可变类,改变String变量中的值,相当于开辟了新的空间存放新的string变量 2. StringBuffer 可变的类,可以通过append方法改变变量的值,且StringB ...

  7. Verilog八线 - 三线优先编码器设计(74LS148)

    百度百科_74LS148 if语句法 //8线-3线优先编码器设计(74LS148) // //EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO //0 | ...

  8. sql:表中数据全部删除之后,重新插入时,从1开始增加

    数据库中设置了自增列,有时候需要清楚数据库从新录入数据.最常见的做法就是使用sql语句"delete 表明名"或是直接选中数据,然后删除数据.但是再次插入数据的时候,你就会发现自增 ...

  9. python 将表格多个列数据放到同一个单元格中

      表格模板: 目的将卡片1到卡片5的所有数据组合起来到一个单元格中如下入F列中(工作中为了避免手动复制粘贴),其余不变,因为数据太多 自己一个一个复制工作效率太低,所以写这个脚本是为了方便自己有需要 ...

  10. 20145238-荆玉茗 《Java程序设计》第五次实验报告

    实验五 Java网络编程及安全 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP ...