一、spark 简介
spark 是快速的
spark 扩充了mapreduce
spark 通用的
spark 容纳了其它分布系统,批处理,迭代式计算,交互式查询,流处理
spark 降低成本
spark 多种开发语言接口
spark 生态系统
诞生于2009年,加州大学伯克利分校RDD实验室的一个研究项目,最初是基于hadoop mapreduce的,发现mapreduce迭代式计算和交互式上低效,引入了内存存储,2010年3月spark 开源,2011年amp实验室在spark上开发了高级组件,像spark streaming,2013年转移到apache下,不久成为顶级项目
二、spark 组件
spark core : 包含spark的基本功能,包含任务调度,内存管理,容错机制等
内部定义了RDDS(弹性分布式数据集)
提供了很多API来创建和操作这些RDDS
为其他的组件提供底层的服务
spark sql: spark 处理结构化数据的库,就像hive sql,mysql一样,一般做报表统计
spark streaming: 是实时数据流处理组件,类似storm
spark streaming 提供了API来操作实时流数据
应用场景,从kafka接收数据做实时统计
Mlib: 一个包含通用机器学习功能的包,machine learning lib
包含分类,聚类,回归等,还包括模型评估和数据导入
MLIB 提供的上面这些方法,都支持集群上的横向扩展
应用场景 机器学习
Graphx:是处理图的库,例如,社交网络图,并进行图的并行计算
像spark streaming,spark sql 一样,它也继承了RDD API
它提供了各种图的操作,包括常用的图算法,例如PangRank算法
应用场景 图计算
Cluster Managers:集群管理,Spark自带一个集群管理是单独调度器。常见集群管理包括Hadoop YARN,Apache Mesos
紧密集成的优点:
Spark底层优化了,基于Spark底层的组件,也得到了相应的优化
紧密集成,节省了各个组件组合使用时的部署、测试时间
当增加新组件时,可即刻使用
三、Spark 与 Hadoop 的比较
Hadoop 主要应用于离线、对时效性要求不高的处理,主要原因是处理过程中的数据要写盘
Spark 主要用于对时效性要求较高的场景,主要原因它是基于内存,中间数据尽量不进行写盘操作,另一个场景是用于机器学习等领域
Hadoop 之父Doug Cutting的观点:
各种分布式系统的生态环境,每个组件都有其作用,各善其职即可
Spark不具备HDFS的存储能力,要借助HDFS等持久化数据
大数据将会孕育出更多的新技术
四、Spark的安装
Spark是Scala写的,运行在JVM上的,所以运行环境Java7+。
如果使用python api,需要安装python 2.6+ 或者 python3.4+
版本对应关系
Spark1.6.2 - Scala2.10 Spark2.0.0-Scala2.11
Spark下载:
下载地址: http://spark.apache.org/downloads.html
Spark不需要Hadoop,如有hadoop集群,可下载相应的版本
下载后解压
Spark目录:
bin包含用来和Spark交互的可执行文件,如Spark shell。
core、streaming、python ...包含主要是组件的源代码。
examples 包含一些单机Spark job,可以作为参考和运行的例子。
cd ./bin
下面介绍下Spark的shell:
Spark的shell使你能够处理分布在集群上的数据
Spark把数据加载到节点的内存中,因此分布式处理可在称级完成。
快速迭代式计算,实时查询、分析一般能够在spark shell中完成
spaark提供了python shell和scala shell
Python Shell:
bin/pyspark
Scala Shell:
bin/spark-shell
例子:
val lines=sc.textFile("./hellospark")
lines.count()
lines.first()
修改日志级别 log4j.rootCategory=WARN,console
五、开发环境
Scala http://www.scala-lang.org/download/
强调下,scala和spark 版本匹配问题
spark 1.6.2 -- scala 2.10
spark 2.0.0 -- scala 2.11
IntelliJ IDEA的下载 安装
https://www.jetbrains.com/idea/
http://idea.lanyus.com
插件安装
plugins,搜索Scala直接安装,插件有scala和sbt
版本匹配 scala2.10.5 JDK1.8 spark1.6.2 sbt0.13.8
开发第一个Spark程序
配置ssh无密码登录
ssh -keygen
.ssh目录下 cat xxx_rsa.pub > authorized_keys
chmod 600 authorized_keys
WordCount
创建一个Spark Context
加载数据
把每一行分割成单词
转换成pairs并且计数
spring boot 深入浅出第六章读书笔记 深入浅出spark
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
深入浅出Java多线程(六):Java内存模型
大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第六篇内容:Java内存模型。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!
Java Java多线程 Java内存模型 JVM 多线程 -
深入浅出Java多线程(八):volatile
大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第八篇内容:volatile。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!
Java Java多线程 Volatile 线程安全 线程同步 -
深入浅出Spring Boot
这一个星期需要等待深度学习出一下成果,顺便等待微服务题目的发放,所以有一
spring mvc 单点登录 -
深入浅出Docker 深入浅出docker 豆瓣
第15章:Docker安全好的安全性是基于分层隔离的,而Docker恰好有
深入浅出Docker Docker 命名空间 docker