spark_1(概述与集群搭建)
学习spark第一天
一.Spark概述
1.什么是Spark(官网:http://spark.apache.org)
- Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
2.为什么要学Spark
- 中间结果输出: 基于MapReduce的计算引擎同常会将结果输出到磁盘上,进行存储和容错。出于对任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖底层文件系统(如HDFS)来存储每一个Stage的输出结果
3.Spark特点
- 快(比Hadoop快六七倍,但是数据量达到上亿条不稳定,容易出错)
- 易用
Spark支持Java、python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的python和scala的shell - 通用
Spark可以用于批量处理、交互式查询(SparkSQL)、实时流处理(SparkStreaming)、机器学习(Spark MLlib)、和图计算(GraphX)。 - 兼容性
Spark可以非常方便地与其他的开源产品进行融入和。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和资源调度,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等
二、Spark集群安装
1.机器部署
-
准备两台以上Linux服务器,安装好JDK
2.下载Spark安装包 -
上传Spark安装包到Linux上
-
解压安装包到指定位置
tar -zxvf spark-1.5.1-bin-hadoop2.4.tgz -C /home/hadoop/apps/
3.配置Spark -
进入Spark安装目录
cd /home/hadoop/apps/spark-1.5.1-bin-hadoop2.4 -
进入conf目录并重命名且修改spark-env.sh.template文件
cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在该配置文件中添加如下配置
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_181
export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077
保存并退出 -
重命名并修改slaves.template文件
mv slaves.template slaves
vi slaves
在该文件中添加子节点所在的位置(worker节点)
hadoop1
hadoop2
hadoop3
保存并退出
将hadoop1上的spark发送到Hadoop2与Hadoop3上 -
配置环境变量
vi /etc/profile
export SPARK_HOME=/home/hadoop/apps/spark-2.2.0-bin-hadoop2.7
export PATH=SPARK_HOME/bin:$SPARK_HOME -
启动spark
/home/hadoop/apps/spark-1.5.1-bin-hadoop2.4/sbin/start-all.sh
启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://hadoop1:8080/
- 进入Spark界面
/home/hadoop/apps/spark-1.5.1-bin-hadoop2.4/bin/spark-shell