spark之Standalone模式部署配置详解

 更新时间:2017年10月14日 15:49:59   作者:JasonDing  
这篇文章主要介绍了spark之Standalone模式部署配置详解,小编觉得挺不错的,这里分享给大家,供各位参考。

spark运行模式

Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Standalone 模式,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者 Mesos 环境,也是很方便部署的。

1.local(本地模式):常用于本地开发测试,本地还分为local单线程和local-cluster多线程;

2.standalone(集群模式):典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现 HA

3.on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算

4.on mesos(集群模式): 运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算

5.on cloud(集群模式):比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon的 S3;Spark 支持多种分布式存储系统:HDFS 和 S3

Spark Standalone集群部署

准备工作

1.这里我下载的是Spark的编译版本,否则需要事先自行编译

2.Spark需要Hadoop的HDFS作为持久化层,所以在安装Spark之前需要安装Hadoop,这里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的运行环境,将spark-env.sh.template模板文件复制成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模式部署配置详解的全部内容,感兴趣的朋友可以继续参阅:浅谈七种常见的Hadoop和Spark项目案例详解Java编写并运行spark应用程序的方法Spark的广播变量和累加器使用方法代码示例等,希望对大家有所帮助。感谢各位对脚本之家网站的支持!

相关文章

  • java虚拟机原理:类加载过程详解

    java虚拟机原理:类加载过程详解

    这篇文章主要介绍了Java中类加载过程全面解析,具有一定参考价值,需要的朋友可以了解下,希望能够给你带来帮助
    2021-09-09
  • java蓝桥杯历年真题及答案整理(小结)

    java蓝桥杯历年真题及答案整理(小结)

    这篇文章主要介绍了java蓝桥杯历年真题及答案整理(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 修改idea运行内存大小的方法总结

    修改idea运行内存大小的方法总结

    在开发过程中,总会遇到idea运行内存不足,所以本文小编给大家介绍了修改idea运行内存大小的两种方法,文中通过图文给大家讲解的非常详细,需要的朋友可以参考下
    2023-12-12
  • 使用feign调用接口时调不到get方法的问题及解决

    使用feign调用接口时调不到get方法的问题及解决

    这篇文章主要介绍了使用feign调用接口时调不到get方法的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java构造函数通透理解篇

    Java构造函数通透理解篇

    这篇文章主要介绍了Java构造函数,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 基于Restful接口调用方法总结(超详细)

    基于Restful接口调用方法总结(超详细)

    下面小编就为大家带来一篇基于Restful接口调用方法总结(超详细)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 关于weblogic部署Java项目的包冲突问题的解决

    关于weblogic部署Java项目的包冲突问题的解决

    这篇文章主要介绍了关于weblogic部署Java项目的包冲突问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • SpringCloud之Feign代理,声明式服务调用方式

    SpringCloud之Feign代理,声明式服务调用方式

    这篇文章主要介绍了SpringCloud之Feign代理,声明式服务调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java 八道经典面试题之链表题

    Java 八道经典面试题之链表题

    本位主要介绍了Java面试中常常遇到的八道经典链表问题,文中示例代码介绍的非常详细,具有一定的参考价值,需要的小伙伴们可以学习一下
    2021-11-11
  • Java判断用户输入月份的季节

    Java判断用户输入月份的季节

    这篇文章主要为大家详细介绍了Java判断用户输入月份的季节,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论