赞
踩
Spark 2009年诞生的一个技术,诞生的主要原因是因为Hadoop大数据解决方案存在一些弊端
Spark相当于是Hadoop的升级版本的解决方案,基于内存进行运算,并且Spark内部实现迭代式计算思想,可以在一个应用程序编写复杂的计算逻辑
Spark有一个思想(one stack to rule them all)-一栈式解决方案,一个技术实现大数据中各种计算场景的应用问题。Spark中包含很多的计算子组件
Spark的核心基础,Spark的任务调度规则,Spark的基础语法,数据抽象RDD。。。
借助SQL或者Hive版本的HQL进行结构化数据的处理
内部采用了微批次处理思想,实现数据的实时计算
2.1~2.2:数据处理和开发的
2.4~2.6:数据科学或者算法计算
Spark相当于Hadoop的升级版的大数据计算解决方案
Spark提供了多种语法的编程风格
Spark计算框架和大数据中很多技术无缝衔接,比如Spark支持直接从HDFS、Kafka、HBase、Hive、MySQL…等等地方直接读取数据处理
Spark一个技术栈可以解决大数据中遇到的大部分计算场景问题,而且Spark各个子组件都是基于Spark Core的,因此Spark的各个子组件可以无缝的衔接转换
【注意】Spark的安装部署,Spark本身就是一个分布式计算框架,如果使用Spark,我们需要使用对应的编程语言编写Spark代码,编写Spark程序不需要部署Spark程序,因此Spark的安装部署主要指的是编写好的Spark程序在什么环境下运行(编写好的Spark程序使用哪种资源调度器进行资源的申请和调度)。 Spark的安装部署就是安装部署Spark运行的资源调度器的。
Spark的资源调度器常用的有三个:Spark自带的standalone独立调度器、Hadoop的YARN、Apache的Mesos
(不使用任何的资源调度器,只在本地运行Spark程序):这种部署模式只能做测试学习使用
部署Master和Worker节点(主从架构):这种部署模式既可以测试学习、也可以做项目开发部署
部署Spark程序在YARN上运行,这种模式一般项目生产环境用的比较多
部署Spark程序在Mesos上运行,这种模式一般项目生产环境用的比较多
汇聚Spark的应用程序的计算日志,借助于HDFS完操作
【注意】Spark安装部署涉及到很多端口:
- 7077 Spark的standalone模式下的master节点的通信端口
- 4000 Spark的历史日志服务器的默认端口
- 8080/自定义端口 Spark的standalone模式下Master节点的webui端口
- 8088 YARN的web访问端口
spark-submit [options] <app jar | python file | R file> [app arguments]
参数 | 说明 |
---|---|
--master masterurl | 将Spark程序部署到哪个资源管理器运行 |
spark://host:port, mesos://host:port, yarn,k8s://https://host:port, or local (Default: local[*]). | |
--deploy-mode mode | Spark应用程序的部署模式(YARN场景下) 取值 client cluster |
--class class_name | jar包中Driver驱动程序的全限定类名 |
--name name | spark应用程序的别名 |
--driver-memory 1024M | driver驱动程序 |
--executor-memory 1G | 等同于YARN中容器,一个容器有多少内存 |
--executor-cores num | 每一个executor中有多少个内核 |
Spark提供了一个REPL工具:spark-shell spark-shell --master local[*]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。