spark特点及安装调试

spark特点

1、快

与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Apache Spark使用最先进的DAG调度程序,查询优化器和物理执行引擎,实现批处理和流数据的高性能

2、便于使用

Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。还支持交互式的Scala,Python,R和SQL shell

3、通用

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。

img

4、兼容

Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。

img

集群安装

首先是得明白怎么选择版本,包括怎么选择Hadoop版本,怎么选择Spark版本,Spark版本之间的差异是什么,怎么选择 Scala,怎么选择Java

www.baidu.com(手动滑稽)

1、机器部署

准备两台安装JDK的机器并配置环境变量、多台机器互通互联,免密登录,时间同步,

2、下载Spark安装包

稳定版及最新版http://spark.apache.org/downloads.html

旧版本http://spark.apache.org/news/index.html

3、解压并安装

上传安装包并解压到指定目录

tar -xvf  spark-2.2.0-bin-hadoop2.7.tar -C /usr/local

4、配置

进入Spark安装目录

cd /usr/local/spark-2.2.0-bin-hadoop2.7

进入conf目录,重命名并修改spark-env.sh.template文件

cd conf
mv spark-env.sh.template spark-env.sh

配置spark-env.sh

vi spark-env.sh

添加一下配置

export JAVA_HOME=/usr/local/jdk1.8.0_181 //jdk路径
export SPARK_MASTER_IP=centos1 //centos1为自己的主机名
export SPARK_MASTER_PORT=7077

新建slaves文件

vi slaves

添加子节点所在位置(Workers)

centos2	//子机名
centos3	//子机名

5、文件分发

scp -r spark-2.2.0-bin-hadoop2.7/ centos2:$PWD	//修改以上任意一项都需重新分发
scp -r spark-2.2.0-bin-hadoop2.7/ centos3:$PWD

Spark集群配置完毕

启动

可以写绝对路径也可以配置到环境变量里面,小编因为有hadoop所以写了觉得路径

start-all.sh	//配置了环境变量使用
/usr/local/spark-2.2.0-bin-hadoop2.7/sbin/start-all.sh	/没有配置环境变量

问题:如果环境变量没问题,而启动的时候总是需要绝对路径才能正常启动则应是主机上装了hadoop,那么这样的话可以写一个shell脚本来启动Spark(shell脚本中写绝对路径)

执行jps查看,登录Spark管理界面查看集群状态(主节点):http://centos1:8080

jps	//主节点上有Master进程,其他子节点上有Work进程

调试

执行一个spark程序

该算法是利用蒙特·卡罗算法求PI

./spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://centos1:7077 \	//填写自己的主机名
/usr/local/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 1000		//自己的spark-examplrs jar包,个版本不一样

启动spark shell

/usr/local/spark-1.6.1-bin-hadoop2.6/bin/spark-shell \
--master spark://centos1:7077 \	//指定Master的地址
--executor-memory 2g \	//指定每个worker可用内存
--total-executor-cores 2	//整个集群使用的cpu核数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章