赞
踩
文章较长,附目录,此次安装是在VM虚拟环境下进行。文章第一节主要是介绍spark和scala,只需安装配置的朋友可以直接跳到文章第二节,希望我的文章能帮助到你。
目录
Spark官网介绍
Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters.
Apache Spark™ 是一种多语言引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习。
Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。
是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发的通用内存并行计算框架Spark得到了众多大数据公司的支持,这些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark已应用于大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当前已知的世界上最大的Spark集群。
Spark的历史
Apache Spark是一个大数据处理框架,其历史可以追溯到2009年,当时它诞生于美国加州大学伯克利分校的AMP实验室。最初,Spark只是一个实验性的项目,代码量非常少,属于轻量级的框架。然而,随着大数据和机器学习领域的快速发展,Spark逐渐受到了广泛的关注和应用。
在2010年,伯克利大学正式开源了Spark项目,这为其后续的快速发展奠定了基础。随着越来越多的开发者和公司开始使用Spark,它的生态系统也逐渐丰富起来,包括Spark SQL、Spark Streaming、MLlib和GraphX等组件的加入,使得Spark成为了一个功能强大的大数据处理框架。
2013年,Spark成为了Apache软件基金会下的顶级项目,这也标志着Spark进入了高速发展的阶段。在这个阶段,Spark的社区活跃度非常高,吸引了大量的第三方开发者贡献代码和优化算法,从而使得Spark的性能和功能得到了不断提升。
随着时间的推移,Spark在大数据领域的应用越来越广泛,成为了大数据处理领域的领导者之一。现在,Spark已经被广泛应用于数据仓库、实时数据流处理、机器学习、图形计算等多个领域,并且还在不断扩展其应用范围。
总之,Apache Spark的历史充满了发展和创新,其从轻量级框架逐渐演变成为功能强大的大数据处理框架,为大数据和机器学习领域的发展做出了重要贡献。
Spark是一种快速、通用、易用、代码简洁、可扩展的大数据处理引擎,具有以下特点:
Spark高级组件架构
spark的框架中包含多个紧密的组件,这些组件分别承担以下作用:
Spark生态圈
Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取数据,以Mesos、YARN和自身携带的Standalone为Cluster Manager调度Job,完成Spark应用程序的计算。这些应用程序可以来自于不同的组件,包括Spark SQL、Spark Streaming、MLlib、GraphX等。
Scala是一门多范式的编程语言,并集成面向对象编程和函数式编程的各种特性。它是一种面对对象的语言。每个值、每一个函数都是一个对象,所以Scala具有非常强的面对对象编程的特性,如封装、继承和多态性。
同时,Scala也是一门函数式的编程语言,它支持嵌套,代表每一位程序员都可以用它来写出具有简洁性、可读性和可组合性,适合编写高效、可维护的代码
Scala与Spark的关系非常密切,可以说是Spark的主要编程语言之一。Spark是由Scala编写的,并且Spark的API也是用Scala编写的。因此,使用Scala编写Spark应用程序可以更加直接、高效和简洁。同时,Scala还支持与其他编程语言的互操作性,为开发人员提供了更加灵活的应用场景选择。
我这里使用的是Linux搭建,下载后缀名为.rgz,如果是在其他系统搭建,请下载对应版本。
选择好你需要的版本,保存到本地。推荐保存到除C盘以外任何盘
注:在搭建前需要有java,Hadoop的集群支持,我这里使用的是已经搭建好了的。没有搭建的朋友可以跟着我的这篇文章搭建。Hadoop集群搭建https://blog.csdn.net/qq_49513817/article/details/136525399?spm=1001.2014.3001.5501
将文件上传至root下的Downloads并解压Scala到opt下
tar -zxvf /root/Downloads/scala-2.12.15.tgz -C/opt/
配置Scala的安装路径,并将其添加到系统的环境变量中
vim /etc/profile
- export SCALA_HOME=/usr/local/soft/scala-2.12.12
- export PATH=$PATH:${SCALA_HOME}/bin
刷新profile,使配置后的环境变量生效
source /etc/profile
验证scala
- scala -version
- scala
出现最后一个箭头指出的Scala即成功。
和Scala一样,将文件上传至root下的Downloads并解压Spark到opt下
tar -zxvf /root/Downloads/spark.tgz -C/opt/
配置Spark的安装路径,并将其添加到系统的环境变量中
- vim /etc/profile
-
- export SPARK_HOME=/opt/spark-3.2.1
- export PATH=$PATH:${SPARK_HOME}/bin
- export PATH=$PATH:${SPARK_HOME}/sbin
刷新profile,使配置后的环境变量生效
source /etc/profile
先复制一下spark中conf的spark-env.sh.template与workers.template并更名
- cp /opt/spark-3.2.1/conf/spark-env.sh.template /opt/spark-3.2.1/conf/spark-env.sh
- cp /opt/spark-3.2.1/conf/workers.template /opt/spark-3.2.1/conf/workers
添加spark-env.sh文件中的环境变量 直接添加到文件结尾即可
- vim /opt/spark-3.2.1/conf/spark-env.sh
-
- export SCALA_HOME=/opt/scala-2.12.15
- export JAVA_HOME=/opt/jdk1.8.0_171
- export SPARK_MASTER_IP=BigData01
- export SPARK_WOKER_CORES=2
- export SPARK_WOKER_MEMORY=2g
- export HADOOP_CONF_DIR=/opt/HadoopHA
- #export SPARK_MASTER_WEBUI_PORT=8080
- #export SPARK_MASTER_PORT=7070
其中SCALA_HOME、JAVA_HOME、HADOOP_CONF_DIR分别对应Scala、Java、Hadoop的路径,SPARK_MASTER_IP是自己的主机ip,SPARK_WOKER_CORES是每个节点能使用的内核数量,SPARK_WOKER_MEMORY是工作节点赋予的内存大小
修改从节点ip 修改为自己的另外两个节点ip
- vim /opt/spark-3.2.1/conf/workers
-
- BigData02
- BigData03
分发文件到自己的另外两个节点
- scp -r /opt/spark-3.2.1/ BigData02:/opt/
- scp -r /opt/spark-3.2.1/ BigData03:/opt/
分别在另外两个节点上上设置环境变量并刷新
- vim /etc/profile
-
- export SPARK_HOME=/opt/spark-3.2.1
- export PATH=$PATH:${SPARK_HOME}/bin
- export PATH=$PATH:${SPARK_HOME}/sbin
-
-
- source /etc/profile
启动集群
- 主节点下:
- cd /opt/spark-3.2.1/sbin/
- ./start-all.sh
- 三个节点分别:
- jps
在主节点上出现Master 在s1上出现Worker在s2上出现Worker
在浏览器上输入自己的ip:8080查看
至此、Spark搭建成功
Spark框架与MapReduce框架
虽然Spark框架与MapReduce框架都是用于处理大规模数据的分布式计算框架,但它们之间存在一些关键的区别。
综上所述,Spark框架与MapReduce框架在数据处理方式、运行速度、容错性、编程模型和适用范围等方面存在明显的区别。选择使用哪个框架取决于具体的应用场景和需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。