今天我们来学习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. SaaS “可配置”和“多租户”架构的几种技术实现方式

    1.数据存储方式的选择 多租户(Multi-Tenant ),即多个租户共用一个实例,租户的数据既有隔离又有共享,说到底是要解决数据存储的问题. 常用的数据存储方式有三种. 方案一:独立数据库   一 ...

  2. System Center Configuration Manager 2016 必要条件准备篇(Part4)

    步骤4.重新启动Configuration Manager主服务器 注意:在Configuration Manager服务器(CM01)上以本地管理员身份执行以下操作 打开管理命令提示符并发出以下 ...

  3. IPV4基本知识介绍

    转自华为官网 1.1  介绍 定义 IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族.它工作在TCP/IP协议栈的网络层,该层与OSI参考 ...

  4. bootstrap-table 大量字段整体表单上传之时间处理

    js 中用$('#addUserForm').serialize(),//获取表单中所有数据 传送到前台 (controller) $.ajax({ type : "POST", ...

  5. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  6. 使用C语言来实现模块化

    除了C语言以及C++编程语言之外,在其它现在非常流行的开发语言中,比如说:java,php,jsp等等.我们很难想象到缺少标准化的模块管理机制是一件多么可怕的事情.但是这往往也是由C语言本身的设计哲学 ...

  7. Oracle字符编码与汉字存储长度的处理

    执行如下语句,查看汉字在数据库中所占的字节: select vsize('汉') from dual; 一般情况下,得到的结果大部分为值:2 或 3 一般linux下安装oracle数据库,默认字符编 ...

  8. Git基础篇

    对于Git的一些基础了解,安装,里面的一些名词,这里就不做介绍了.主要记录怎么使用GIt. 本篇介绍: 配置个人信息        生成本地仓库并与远程库相连        添加SSH秘钥       ...

  9. C#声明方法

    一.声明方法 方法是类中用于执行计算或其它行为的成员. 方法可以分为: ?静态方法:可以通过类进行访问.?实例方法:可以通过类的对象进行访问. 1. C#方法的声明 声明方法的语法格式如下: 访问修饰 ...

  10. deep learning书的阅读

    最近坚持读书,虽然大多数读的都是一些闲书,传记.历史或者散文之类的书籍,但是也读了点专业书.闲书是散时间读的,放车里,有时间就拿起来读读,专业书则更多的靠得是专注.因为我给自己的规定是一定时间内读完几 ...