@H_404_1@一、Spark简介
@H_404_1@二、特点:
扩充了Mapreduce计算模型
Spark是基于内存的计算
@H_404_1@2、Spark 通用
Spark的设计容纳了其他分布式系统的拥有的功能。
批处理、迭代式计算、交互查询和流处理等。
@H_404_1@3、Spark 高度开放
Python、Java、Scala、sql的API和丰富的内置库
Spark和其他的大数据工具整合的很好,包括Hadoop和Kafka
@H_404_1@三、Spark的组件
@H_404_1@ 1、Spark Core
@H_404_1@ 包含Spark的基本功能,包含任务调度、内存管理、容错机制等
内部定义了RDDs(弹性分布式数据集)
提供了很多API来创建和操作这些RDDs
应用场景,为为其他组件提供底层的服务
@H_404_1@ 是Spark处理结构化数据的库,就像Hive sql、MysqL一样。
应用场景,在企业中用来做报表统计
3、Spark Sreaming
是实时数据流处理组件,类似Storm
Spark Streaming提供了API来操作实时数据流
应用场景,企业中用来从Kafka接收数据做实时统计
@H_404_1@ 4、Mlib
一个包含机器学习功能的包,Machine learning lib
应用场景,机器学习
@H_404_1@ 5、GraphX
是处理图的库(例如,社交网络图),并进行图的并行计算
像Spark Streaming、Spark sql一样,它继承了RDD API
它提供了各种图的操作,和常用的图算法,例如PangeRank算法
应用场景,图计算
@H_404_1@6、Cluster Managers
常见的集群管理:Hadoop YARN,Apache Mesos
@H_404_1@ 紧密集成的优点:
1、Spark底层优化,基于Spark底层的组件,也得到了相应的优化
2、紧密集成,节省了各个组件组合使用时的部署、测试等时间
3、向Spark新增组件时,可立即享用新组件的功能
@H_404_1@四、Spark和Hadoop的比较
@H_404_1@ 1、Hadoop
@H_404_1@ 离线处理
@H_404_1@ 对时效性要求不高
@H_404_1@ Hadoop中间数据存储在@H_404_1@硬盘上
@H_404_1@2、Spark
时效性较高的场景
Spark中间数据存储在@H_404_1@内存中
@H_404_1@五、Spark的安装
@H_404_1@ 1、下载地址: http://spark.apache.org/downloads.html
@H_404_1@ 2、Spark目录:
@H_404_1@ bin:包含用来和Spark进行交互的可执行文件,如Spark Shell
core、streaming、python...,包含主要组件的源代码
examples包含一些单机Spark job,可以研究和运行这些例子
@H_404_1@3、Shell
@H_404_1@ Spark的Shell是你能够处理分布在集群上的数据
Spark把数据加载到节点的内存中,因此分布式处理可在秒级完成
快速使迭代式计算,实施查询、分析一般能够在shells中完成
Spark提供了Python shell和Scala shell
./bin/spark-shell
@H_404_1@六、Spark开发环境搭建
@H_404_1@ 1、Scala的安装
@H_404_1@ 地址: https://www.scala-lang.org/download/
@H_404_1@ 2、IntelliJ IDEA CE
@H_404_1@ 地址:https://www.jetbrains.com/idea/
@H_404_1@ 安装plugin: Spark 和 Scala
@H_404_1@
@H_404_1@ 1、配置Spark的无密登陆:
@H_404_1@ 终端命令 ssh-keygen 生成密钥,这个密钥的生成和github配置ssh生成的密钥一样的,如果github生成过的话,直接用github那个id_rsa.pub就可以。
步骤是: 1、ssh-keygen
2、cd ~/.ssh/
3、touch authorized_keys
4、cat id_rsa.pub > authorized_keys
5、chown 600 authorized_keys
@H_404_1@ 2、创建项目
@H_404_1@ Spark 和 Scala安装完成之后
@H_404_1@@H_404_1@ New -> Project -> Scala -> sbt -> Next -> Finish
@H_404[email protected] 中配置项目依赖 ,@H_404_1@注意 Scala和Spark的版本一定要对应上 不然会出版本问题
这是我用的配置:
name := "Scala-Test" version := "0.1" scalaVersion := "2.12.8" libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "2.4.3")
<style></style>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。