01、Spark安装与配置
1、hadoop回顾
Hadoop是分布式计算引擎,含有四大模块,common、hdfs、mapreduce和yarn。
2、并发和并行
并发通常指针对单个节点的应对多个请求的能力,是单一节点上计算能力的衡量,并行通常针对集群来讲,是利用多个节点进行分布式协同作业,我们称之为并行计算。
3、Spark
快如闪电集群计算引擎,应用于大规模数据处理快速通用引擎,使用内存计算。
- Speed
内存计算速度是hadoop的100倍以上,硬盘计算是Hadoop是10倍以上,Spark使用高级DAG(Direct acycle graph)执行引擎。 - 易于使用
提供了80+高级算子,能够轻松构建并行应用,也可以使用scala,python,r的shell进行交互式操作。 - 通用性
对SQL、流计算、复杂分析可进行组合应用。spark提供了类库栈,包括SQL、MLlib、graphx和Spark streaming。 - 架构
Spark core
spark SQL
spark streaming
spark mllib
spark graphx - 到处运行
spark可以运行在hadoop、mesos、standalone和clound上,同时可以访问多种数据源,如hdfs、hbase、hive、Cassandra、 S3等。
4、spark集群部署模式
-
local
不需要启动任何Spark进程,使用一个JVM运行Spark所有组件,主要用于调试和测试。
-
standalone
独立模式,需要安装Spark集群,分别启动master节点和worker节点,master是管理节点,worker是task的执行节点。
-
mesos
略。
-
yarn
不需要单独部署Spark集群,可以说根本没有Spark集群的概念。该模式下,使用的完全是Hadoop的Job执行流程,只是到末端启动任务时使用Spark的Task执行发生,相当于Spark是一个Hadoop的Job,将Spark的所有jar包打入job运行的依赖包中,流程按照hadoop的执行流程来进行。
5、安装spark
-
下载spark-2.1.0-bin-hadoop2.7.tgz
以下是Spark的官方下载地址:
https://www.apache.org/dyn/closer.lua/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz
-
解压文件到/soft目录下
$>tar -xzvf spark-2.3.0-bin-hadoop2.7.tgz -C /soft
-
创建软连接
创建软连接后,编译各种文件配置以及后期进行版本升级和替换非常方便。
$>cd /soft $>ln -s spark-2.3.0-bin-hadoop2.7 spark
-
配置环境变量
编辑/etc/profile环境变量文件:
$>sudo nano /etc/profile
在文件末尾添加如下内容:
... SPARK_HOME=/soft/spark PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
注意:将Spark的bin目录和sbin目录都添加到环境变量path中,而且Linux使用“:”作为分隔符。
-
环境变量生效
$>source /etc/profile
-
进入Spark-shell命令行
$>/soft/spark/spark-shell #进入scala命令提示符 $scala>
-
体验Spark-shell
因为Spark使用的scala语言,因此同Scala的使用完全一致。
$scala>1 + 1 #输出结果 2