spark之Standalone模式部署配置详解
spark运⾏模式
hadoop分布式集搭建Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运⾏在集中,⽬前能很好的运⾏在Yarn和 Mesos 中,当然 Spark 还有⾃带的 Standalone 模式,对于⼤多数情况 Standalone 模式就⾜够了,如果企业已经有Yarn 或者 Mesos 环境,也是很⽅便部署的。
1.local(本地模式):常⽤于本地开发测试,本地还分为local单线程和local-cluster多线程;
2.standalone(集模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark⽀持ZooKeeper来实现
HA
< yarn(集模式):运⾏在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
< mesos(集模式):运⾏在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算
< cloud(集模式):⽐如 AWS 的 EC2,使⽤这个模式能很⽅便的访问 Amazon的 S3;Spark ⽀持多种分布式存储系
统:HDFS 和 S3
Spark Standalone集部署
准备⼯作
1.这⾥我下载的是Spark的编译版本,否则需要事先⾃⾏编译
2.Spark需要Hadoop的HDFS作为持久化层,所以在安装Spark之前需要安装Hadoop,这⾥Hadoop的安装就不介绍
了,给出⼀个教程
3.实现创建hadoop⽤户,Hadoop、Spark等程序都在该⽤户下进⾏安装
4.ssh⽆密码登录,Spark集中各节点的通信需要通过ssh协议进⾏,这需要事先进⾏配置。通过在hadoop⽤户的.ssh
⽬录下将其他⽤户的id_rsa.pub公钥⽂件内容拷贝的本机的authorized_keys⽂件中,即可事先⽆登录通信的功能
5.Java环境的安装,同时将JAVA_HOME、CLASSPATH等环境变量放到主⽬录的.bashrc,执⾏source .bashrc使之⽣
效
部署配置
这⾥配置⼯作需要以下⼏个步骤:
1.解压Spark⼆进制压缩包
2.配置conf/spark-env.sh⽂件
3.配置conf/slave⽂件
下⾯具体说明⼀下:
配置Spark的运⾏环境,将plate模板⽂件复制成spark-env.sh,然后填写相应需要的配
置内容:
export SPARK_MASTER_IP=hadoop1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g
其他选项内容请参照下⾯的选项说明:
# Options for the daemons used in the standalone deploy mode:
# - SPARK_MASTER_IP, to bind the master to a different IP address or hostname
# - SPARK_MASTER_PORT / SPARK_MASTER_WEBUI_PORT, to use non-default ports for the master
# - SPARK_MASTER_OPTS, to set config properties only for the master (e.g. "-Dx=y")
# - SPARK_WORKER_CORES, to set the number of cores to use on this machine
# - SPARK_WORKER_MEMORY, to set how much total memory workers have to give executors (e.g. 1000m, 2g)
# - SPARK_WORKER_PORT / SPARK_WORKER_WEBUI_PORT, to use non-default ports for the worker
# - SPARK_WORKER_INSTANCES, to set the number of worker processes per node
# - SPARK_WORKER_DIR, to set the working directory of worker processes
# - SPARK_WORKER_OPTS, to set config properties only for the worker (e.g. "-Dx=y")
# - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. "-Dx=y")
conf/slave⽂件⽤户分布式节点的配置,这⾥只需要在slave⽂件中写⼊该节点的主机名即可
将以上内容都配置好了,将这个spark⽬录拷贝到各个节点scp -r spark hadoop@hadoop2:~
接下来就可以启动集了,在Spark⽬录中执⾏sbin/start-all.sh,然后可以通过netstat -nat命令查看端⼝
7077的进程,还可以通过浏览器访问hadoop1:8080了解集的概况
Spark Client部署
Spark Client的作⽤是,事先搭建起Spark集,然后再物理机上部署客户端,然后通过该客户端提交任务给Spark集。
由于上⾯介绍了Standalone分布式集是如何搭建的,这⾥只需将集上的spark⽂件夹拷贝过来。
最简单的Spark客户端访问集的⽅式就是通过Spark shell的⽅式:bin/spark-shell --master spark://hadoop1:7077这样就可以访问集了。
这样在浏览器的Spark集界⾯上就可以看到Running Applications⼀栏中有Spark shell的应⽤在执⾏。
Spark Standalone伪分布式部署
伪分布式是在⼀台机器上进⾏部署来模拟分布式的集,这⾥部署的过程和Standalone集的部署是类似的,事前的⼯作都是⼀样的,这⾥只是在配置⽂件中做相应的修改就可以了。
这⾥还是配置这两个⽂件:
配置conf/spark-env.sh⽂件
配置conf/slave⽂件
修改spark-env.sh⽂件,修改master的ip,这⾥主机名和⽤户ip分别在/etc/hostname和/etc/hosts⽂件中进⾏配置
export SPARK_MASTER_IP=jason
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g
slave⽂件中,填写⾃⼰的主机名,⽐如我的主机名jason
总结
以上就是本⽂关于spark之Standalone模式部署配置详解的全部内容,感兴趣的朋友可以继续参阅:、、等,希望对⼤家有所帮助。感谢各位对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论