Spark学习(一) -- Spark安装及简介

2023-06-25,,

标签(空格分隔): Spark


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

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

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

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

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

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

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

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

Spark简介

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

Spark与Hadoop有以下关系:

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

Mac Scala安装

    使用brew安装:

    brew install scala

    下载包安装

    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"

    验证

    $ 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安装

    使用brew安装

    $ brew install apache-spark

    检测是否安装成功

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安装及简介的相关教程结束。

《Spark学习(一) -- Spark安装及简介.doc》

下载本文的Word格式文档,以方便收藏与打印。