一, Spark 是什么
Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用分布式并行计算框架. Spark 拥有 hadoop MapReduce 所具有的优点, 但和 MapReduce 的最大不同之处在于 Spark 是基于内存的迭代式计算 --Spark 的 Job 处理的中间输出结果可以保存在内存中, 从而不再需要读写 HDFS, 除此之外, 一个 MapReduce 在计算过程中只有 map 和 reduce 两个阶段, 处理之后就结束了, 而在 Spark 的计算模型中, 可以分为 n 阶段, 因为它内存迭代式的, 我们在处理完一个阶段以后, 可以继续往下处理很多个阶段, 而不只是两个阶段.
因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法. 其不仅实现了 MapReduce 的算子 map 函数和 reduce 函数及计算模型, 还提供更为丰富的算子, 如 filter,join,groupByKey 等. 是一个用来实现快速而同用的集群计算的平台.
Spark 是一个用来实现快速而通用的集群计算的平台. 扩展了广泛使用的 MapReduce 计算模型, 而且高效地支持更多的计算模式, 包括交互式查询和流处理. 在处理大规模数据集的时候, 速度是非常重要的. Spark 的一个重要特点就是能够在内存中计算, 因而更快. 即使在磁盘上进行的复杂计算, Spark 依然比 MapReduce 更加高效.
二, Spark 安装
1, 下载安装
- # 下载安装包
- wget https://mirrors.aliyun.com/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
- # 解压安装包
- tar xf spark-2.3.1-bin-hadoop2.7.tgz
- mv spark-2.3.1-bin-hadoop2.7 /usr/local/spark
2, 配置 Spark 环境变量
编辑文件 / etc/profile.d/spark.sh, 修改为如下:
- # Spark ENV
- export SPARK_HOME=/usr/local/spark
- export PATH=$PATH:$SPARK_HOME/bin:
三, Spark 配置 (namenode01)
1, 配置 spark-env.sh
编辑文件 / usr/local/spack/conf/spark-env.sh, 修改为如下内容:
- export JAVA_HOME=/usr/local/java
- export SCALA_HOME=/usr/local/scala
- export HADOOP_HOME=/usr/local/hadoop
- export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
- export SPARK_MASTER_IP=namenode01
- export SPARK_WORKER_MEMORY=4g
- export SPARK_WORKER_CORES=2
- export SPARK_WORKER_INSTANCES=1
2, 配置 slaves
编辑文件 / usr/local/spack/conf/slaves, 修改为如下内容:
- datanode01
- datanode02
- datanode03
3, 配置文件同步到其他节点
- scp /usr/local/spack/conf/* datanode01:/usr/local/spark/conf/
- scp /usr/local/spack/conf/* datanode02:/usr/local/spark/conf/
- scp /usr/local/spack/conf/* datanode03:/usr/local/spark/conf/
四, 启动 Spark 集群
Spark 服务只使用 hadoop 的 hdfs 集群.
/usr/local/spark/sbin/start-all.sh
五, 检查
- 1,JPS
- [root@namenode01 ~]# jps
- 14512 NameNode
- 23057 RunJar
- 14786 ResourceManager
- 30355 Jps
- 15894 HMaster
- 30234 Master
- [root@datanode01 ~]# jps
- 3509 DataNode
- 3621 NodeManager
- 1097 QuorumPeerMain
- 9930 RunJar
- 15514 Worker
- 15581 Jps
- 3935 HRegionServer
- [root@datanode02 ~]# jps
- 3747 HRegionServer
- 14153 Worker
- 3322 DataNode
- 3434 NodeManager
- 1101 QuorumPeerMain
- 14221 Jps
- [root@datanode03 ~]# jps
- 3922 DataNode
- 4034 NodeManager
- 19186 Worker
- 19255 Jps
- 1102 QuorumPeerMain
- 4302 HRegionServer
2,Spark web 界面
访问 http://192.168.1.200:8080/
3,spark-shell
同时, 因为 shell 在运行, 我们也可以通过 192.168.1.200:4040 访问 WebUI 查看当前执行的任务.
来源: http://www.bubuko.com/infodetail-2849614.html