- 大数据计算引擎
- 官网:spark.apache.org/
- 官方介绍:Apache Spark™ is a unified analytics engine for large-scale data processing.(Apache Spark™是一个用于大规模数据处理的统一分析引擎。)
- Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
- Spark生态圈:
- Spark Core:RDD(弹性分布式数据集)
- Spark SQL
- Spark Streaming
- Spark MLLib:协同过滤,ALS,逻辑回归等等 --> 机器学习
- Spark Graphx:图计算
(2) 为什么要学习Spark
- Hadoop的MapReduce计算模型存在的问题:
-
MapReduce的核心是Shuffle(洗牌)。在整个Shuffle的过程中,至少会产生6次的I/O。
-
中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。另外,当一些查询(如:Hive)翻译到MapReduce任务时,往往会产生多个Stage(阶段),而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果,而I/O的效率往往较低,从而影响了MapReduce的运行速度。
-
- Spark的最大特点:基于内存
- Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,弥补MapReduce的不足。
(3) Spark的特点:快、易用、通用、兼容性
- 快——与Hadoop的MapReduce相比,Spark基于内存的运算速度要快100倍以上,即使,Spark基于硬盘的运算也要快10倍。Spark实现了高效的DAG执行引擎,从而可以通过内存来高效处理数据流。
- 易用——Spark支持 Java 、 Python 和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些 shell 中使用Spark集群来验证解决问题的方法。
- 通用性——Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。另外Spark还可以很好的融入Hadoop的体系结构中可以直接操作HDFS,并提供Hive on Spark、Pig on Spark的框架集成Hadoop。
- 易用性——Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。
2. Spark体系架构
- Spark的运行方式
- Yarn
- Standalone:本机调试(demo)
- Worker(从节点):每个服务器上,资源和任务的管理者,只负责管理一个节点。
- 执行过程:
- 一个Worker 有多个 Executor。 Executor是任务的执行者,按阶段(stage)划分任务。—> RDD
- 客户端:Driver Program 提交任务到集群中。
- spark-submit
- spark-shell
3. Spark-2.1.0安装流程
(1) 准备工作
- 具备java环境
- 配置主机名
- 配置免密码登录
- 防火墙关闭
(2) 解压spark-2.1.0-bin-hadoop2.7.tgz安装包到目标目录下:
-
tar -zxvf .tar.gz -C 目标目录
(3) 为后续方便,重命名Spark文件夹:
-
mv spark-2.1.0-bin-hadoop2.7/ spark-2.1.0
(4) Spark目录介绍
- bin —— Spark操作命令
- conf —— 配置文件
- data —— Spark测试文件
- examples —— Spark示例程序
- jars
- LICENSE
- licenses
- NOTICE
- python
- README.md
- RELEASE
- sbin —— Spark集群命令
- yarn —— Spark-yarn配置
(5) 修改配置文件:
- <1>. 配置spark-env.sh:
- 进入spark-2.1.0/conf路径,重命名配置文件:
-
mv spark-env.sh.template spark-env.sh
-
- 修改spark-env.sh信息:
-
vi spark-env.sh
-
export JAVA_HOME=/opt/module/jdk1.8.0_144 export SPARK_MASTER_HOST=bigdata01 export SPARK_MASTER_PORT=7077 复制代码
-
- 进入spark-2.1.0/conf路径,重命名配置文件:
- <2>. 配置slaves:
- 进入spark-2.1.0/conf路径,重命名配置文件:
-
mv slaves.template slaves
-
- 修改slaves信息:
-
vi slaves
-
bigdata02 bigdata03 复制代码
-
- 进入spark-2.1.0/conf路径,重命名配置文件:
(6) 配置环境变量:
- 修改配置文件:
-
vi /etc/profile
-
- 增加以下内容:
export SPARK_HOME=spark安装路径 export PATH=$PATH:$SPARK_HOME/bin export PATH=$PATH:$SPARK_HOME/sbin
- 声明环境变量:
-
source /etc/profile
-
(6) 集群配置:
- 拷贝配置好的spark到其他机器上
scp -r spark-2.1.0/ bigdata02:$PWD scp -r spark-2.1.0/ bigdata03:$PWD
(7) 启动:
- 启动主节点:
-
start-master.sh
-
- 启动从节点:
-
start-slaves.sh
-
- 启动shell:
-
spark-shell
-
- 通过网页端查看:
- http://bigdata01:8080/
- Spark中内置有Tomcat,故端口号默认为8080
(8) 关闭:
- 关闭主节点:
-
stop-master.sh
-
- 关闭从节点:
-
stop-slaves.sh
-
4. Spark HA的实现
(1) 基于文件系统的单点恢复
-
主要用于开发或测试环境。
-
当spark提供目录保存spark Application和worker的注册信息,并将他们的恢复状态写入该目录中,一旦Master发生故障,就可以通过重新启动Master进程(sbin/start-master.sh),恢复已运行的spark Application和worker的注册信息。
-
基于文件系统的单点恢复,主要是在spark-env.sh里对SPARK_DAEMON_JAVA_OPTS设置
- 创建存放文件夹:
mkdir /opt/module/spark-2.1.0/recovery
- 修改配置信息:
vi spark-env.sh export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/opt/module/spark-2.1.0/recovery"
- 创建存放文件夹:
以上所述就是小编给大家介绍的《Linux环境Spark安装配置及使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
TCP/IP详解 卷1:协议
W.Richard Stevens / 范建华 / 机械工业出版社 / 2000-4-1 / 45.00元
《TCP/IP详解卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者W.Richard Stevens用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 《TCP/IP详解卷1:协议》适合作为计算机专业学......一起来看看 《TCP/IP详解 卷1:协议》 这本书的介绍吧!