Apache Spark 简介java
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,拥有Hadoop MapReduce所具备的优势;但不一样于MapReduce的是Job中间输出结果能够保存在内存中,从而再也不须要读写HDFS,所以Spark能更好地适用于数据挖掘与机器学习等须要迭代的MapReduce的算法。node
Spark 是一种与 Hadoop 类似的开源集群计算环境,可是二者之间还存在一些不一样之处,这些有用的不一样之处使 Spark 在某些工做负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了可以提供交互式查询外,它还能够优化迭代工做负载。web
Spark 是在 Scala 语言中实现的,它将 Scala 用做其应用程序框架。与 Hadoop 不一样,Spark 和 Scala 可以紧密集成,其中的 Scala 能够像操做本地集合对象同样轻松地操做分布式数据集。算法
尽管建立 Spark 是为了支持分布式数据集上的迭代做业,可是实际上它是对 Hadoop 的补充,能够在 Hadoop 文件系统中并行运行。经过名为 Mesos 的第三方集群框架能够支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。shell
准备工做1 环境apache
JDK:1.8 Spark-2.2.0 Hadoop Release:2.7.4 centos:7.3
JDK:1.8 Spark-2.2.0 Hadoop Release:2.7.4 centos:7.3
主机名 | ip地址 | 安装服务 |
---|---|---|
spark-master | 192.168.252.121 | jdk、hadoop、spark、scala |
spark-slave01 | 192.168.252.122 | jdk、hadoop、spark |
spark-slave02 | 192.168.252.123 | jdk、hadoop、spark |
2 依赖环境segmentfault
Spark 是在 Scala 语言中实现的,它将 Scala 用做其应用程序框架。与 Hadoop 不一样,Spark 和 Scala 可以紧密集成,其中的 Scala 能够像操做本地集合对象同样轻松地操做分布式数据集。安装 Scala:centos
Scala并发
Scala-2.13.0 安装及配置(https://link.juejin.im/?target=https%3A%2F%2Fsegmentfault.com%2Fa%2F1190000011314775) 框架
Hadoop
Hadoop-2.7.4 集群快速搭建(https://link.juejin.im/?target=https%3A%2F%2Fsegmentfault.com%2Fa%2F1190000011266759)
安装
1 下载解压
su hadoopcd /home/hadoop/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
su hadoopcd /home/hadoop/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
2 环境变量
若是是对全部的用户都生效就修改vi /etc/profile
文件若是只针对当前用户生效就修改 vi ~/.bahsrc
文件
sudo vi /etc/profile
sudo vi /etc/profile
#sparkexport PATH=${SPARK_HOME}/bin:$PATHexport SPARK_HOME=/home/hadoop/spark-2.2.0/
#sparkexport PATH=${SPARK_HOME}/bin:$PATHexport SPARK_HOME=/home/hadoop/spark-2.2.0/
使环境变量生效,运行 source /etc/profile
使/etc/profile
文件生效
3 修改配置
cd /home/hadoop/spark-2.2.0/conf mv spark-env.sh.template spark-env.sh vi spark-env.sh #javaexport JAVA_HOME=/lib/jvm#Spark主节点的IPexport SPARK_MASTER_IP=192.168.252.121#Spark主节点的端口号export SPARK_MASTER_PORT=7077
cd /home/hadoop/spark-2.2.0/conf mv spark-env.sh.template spark-env.sh vi spark-env.sh #javaexport JAVA_HOME=/lib/jvm#Spark主节点的IPexport SPARK_MASTER_IP=192.168.252.121#Spark主节点的端口号export SPARK_MASTER_PORT=7077
简单介绍几个变量
JAVA_HOME:Java安装目录
SCALA_HOME:Scala安装目录
HADOOP_HOME:hadoop安装目录
HADOOP_CONF_DIR:hadoop集群的配置文件的目录
SPARK_MASTER_IP:spark集群的Master节点的ip地址
SPARK_WORKER_MEMORY:每一个worker节点可以最大分配给exectors的内存大小
SPARK_WORKER_CORES:每一个worker节点所占有的CPU核数目
SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
cd /home/hadoop/spark-2.2.0/conf mv slaves.template slaves vi slaves node1 node2 node3
cd /home/hadoop/spark-2.2.0/conf mv slaves.template slaves vi slaves node1 node2 node3
4 配置集群
进去 spark 安装目录 ,打包,并发送,到其余节点
cd cd /home/hadoop/ tar zcvf spark.tar.gz spark-2.2.0 scp spark.tar.gz hadoop@node2:/home/hadoop/ scp spark.tar.gz hadoop@node3:/home/hadoop/
cd cd /home/hadoop/ tar zcvf spark.tar.gz spark-2.2.0 scp spark.tar.gz hadoop@node2:/home/hadoop/ scp spark.tar.gz hadoop@node3:/home/hadoop/
进去 node1
,node2
节点 解压
cd /home/hadoop/ tar -zxvf spark.tar.gz
cd /home/hadoop/ tar -zxvf spark.tar.gz
到这里一步 确保你的每个节点 环境变量够数
#jdk export JAVA_HOME=/lib/jvm export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH #hadoop export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/ #scala export SCALA_HOME=/lib/scala #spark export SPARK_HOME=/home/hadoop/spark-2.2.0/
#jdk export JAVA_HOME=/lib/jvm export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH #hadoop export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/ #scala export SCALA_HOME=/lib/scala #spark export SPARK_HOME=/home/hadoop/spark-2.2.0/
5 启动集群
关闭防火墙
systemctl stop firewalld.service
systemctl stop firewalld.service
cd /home/hadoop/hadoop-2.7.4/sbin ./start-all.sh
cd /home/hadoop/hadoop-2.7.4/sbin ./start-all.sh
cd /home/hadoop/spark-2.2.0/sbin ./start-all.sh
cd /home/hadoop/spark-2.2.0/sbin ./start-all.sh
cd /home/hadoop/spark-2.2.0/bin ./spark-shell
spark 访问:192.168.252.121:8080
spark-shell 访问:192.168.252.121:4040