标签(空格分隔): Spark


学习中的知识点:函数式编程、泛型编程、面向对象、并行编程。

任何工具的产生都会涉及这几个问题:

  1. 现实问题是什么?
  2. 理论模型的提出。
  3. 工程实现。

思考: 数据规模达到一台机器无法处理的时候,如何在有限的时间内对整个数据集进行遍历及分析?

Google针对大数据问题提出的一些解决方案:

  • MapReduce: 计算框架;
  • GFS:数据存储
  • BigTable:NoSQL始祖。

Hadoop是根据MapReduce和GFS两大论文所做的开源实现,因此,它主要解决2大问题:数据存储分布式计算框架

YARN是Hadoop2和Hadoop1的最大区别,将集群管理本身独立出来。而计算模型则更加专注于问题本身。

Spark简介

Spark是由UC Berkeley的AMPLab出品的,主要创作者是Matei Zaharia. Spark与MapReduce位于Hadoop生态圈的同一层,主要解决分布式计算框架的问题。

Spark与Hadoop有以下关系:

  1. Spark和Hadoop中的MapReduce位于同一层次;
  2. Spark可以部署在YARN(专门管理集群工作的)上;
  3. Spark支持HDFS文件系统的访问。

Mac Scala安装

  1. 使用brew安装:

    brew install scala

  2. 下载包安装

    tar zxvf ~/Download/scala-2.12.1.tgz #解压

    mv ~/Download/scala-2.12.1 ~/Download/scala #重命名

    mv ~/Download/scala /usr/local/share/ #将文件夹放到合适的位置

    修改环境变量,如果不是管理员可使用 sudo 进入管理员权限,修改配置文件profile,在文件的末尾加入:

    export PATH="$PATH:/usr/local/share/scala/bin"

  3. 验证

    $ scala

    显示:Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).

    Type in expressions to have them evaluated.

    Type :help for more information.

Mac Spark安装

  1. 使用brew安装

    $ brew install apache-spark

  2. 检测是否安装成功

  • cd /usr/local/Cellar/apache-spark/1.3.0/bin/
  • 输入:./spark-shell 启动spark

WordCount in spark-shell

在spark-shell中完成单词统计:

val file = sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
// 以空格为拆分标志,将文件中的每一行分割为多个单词
val words = file.flatMap(line => line.split(" "))
// 对每一个单词进行计数
val wordNumber = words.map(w => (w, 1))
// 将单词进行分类合并,计算每个单词总的出现次数
val wordCounts = wordNumber.reduceByKey(_+_)
//将所有单词及其出现次数打印出来
wordsCounts.foreach(println)

上述工作的简单表述形式:

sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
.flatMap(line => line.split(" "))
.map(w => (w, 1))
.reduceByKey(_+_)
.foreach(println)

Spark学习(一) -- Spark安装及简介的更多相关文章

  1. Spark学习之Spark Streaming(9)

    Spark学习之Spark Streaming(9) 1. Spark Streaming允许用户使用一套和批处理非常接近的API来编写流式计算应用,这就可以大量重用批处理应用的技术甚至代码. 2. ...

  2. Spark学习之Spark SQL(8)

    Spark学习之Spark SQL(8) 1. Spark用来操作结构化和半结构化数据的接口--Spark SQL. 2. Spark SQL的三大功能 2.1 Spark SQL可以从各种结构化数据 ...

  3. Spark学习之Spark调优与调试(7)

    Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...

  4. Spark学习之Spark安装

    Spark安装 spark运行环境 spark是Scala写的,运行在jvm上,运行环境为java7+ 如果使用Python的API ,需要使用Python2.6+或者Python3.4+ Spark ...

  5. Spark学习笔记--Linux安装Spark集群详解

    本文主要讲解如何在Linux环境下安装Spark集群,安装之前我们需要Linux已经安装了JDK和Scala,因为Spark集群依赖这些.下面就如何安装Spark进行讲解说明. 一.安装环境 操作系统 ...

  6. Spark学习进度-Spark环境搭建&Spark shell

    Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...

  7. Spark学习之Spark Streaming

    一.简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用.训练机器学习模型的应用,还有自动检测异常的应用.Spark Streaming 是 Spark 为这些应用而设计的模型.它 ...

  8. Spark学习之Spark调优与调试(一)

    一.使用SparkConf配置Spark 对 Spark 进行性能调优,通常就是修改 Spark 应用的运行时配置选项.Spark 中最主要的配置机制是通过 SparkConf 类对 Spark 进行 ...

  9. Spark学习笔记--Spark在Windows下的环境搭建

    本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...

  10. Spark学习笔记--Spark在Windows下的环境搭建(转)

    本文主要是讲解Spark在Windows环境是如何搭建的 一.JDK的安装 1.1 下载JDK 首先需要安装JDK,并且将环境变量配置好,如果已经安装了的老司机可以忽略.JDK(全称是JavaTM P ...

随机推荐

  1. SQLite - TRUNCATE TABLE

    https://www.tutorialspoint.com/sqlite/sqlite_truncate_table.htm Unfortunately, no TRUNCATE TABLE in ...

  2. BI好比做菜

    近日,珠海奥威软件宣布成功签约新世界中国地产(华南),成为该公司在商业智能项目上的坚实合作伙伴,共同打造基于以财务应用为主的决策分析平台. 公司简介 新世界中国地产(港股代号:917)为香港上市公司新 ...

  3. 关于UIView的方法animateWithDuration:animations:completion:的说明

    今天遇到一个问题,具体问题就不细说了,总之是UIView的动画导致的. 研究结果表明,UIViewController被挡住或没显示出来时,用UIView的静态方法animateWithDuratio ...

  4. zjuoj 3773 Paint the Grid

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3773 Paint the Grid Time Limit: 2 Secon ...

  5. 【C#进阶】多播委托和委托数组像是一回事~

    这个MathOperation类有三静态方法,参数都是double,并且没有返回值,考虑用Action<>() 这种预定义的委托哦 class MathOperations { publi ...

  6. 完美解决 nginx No input file specified.

    一次开发中遇到了这个问题:No input file specified nginx版本1.8 找遍网络都是说 fastcgi_param SCRIPT_FILENAME $document_root ...

  7. python3爬取网页

    爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...

  8. Python爬虫爬取百度贴吧的帖子

    同样是参考网上教程,编写爬取贴吧帖子的内容,同时把爬取的帖子保存到本地文档: #!/usr/bin/python#_*_coding:utf-8_*_import urllibimport urlli ...

  9. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

  10. iOS传值之block传值(一)

    ios4.0系统已开始支持block,在编程过程中,blocks被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入 ...