Apache Spark渐进式学习教程(八):Spark集群部署(standalone)和运行

一,前言

1.1 集群规划

需要已经配置免密登录的三台CentOS7服务器:

IP地址hosts节点身份
172.16.49.246docker01Master,Worker
172.16.49.247docker02Worker
172.16.49.248docker03Worker

 

1.2 前置条件

1)提前安装JDK1.8,请参考:https://www.t9vg.com/archives/346

2)提前安装Scala,请参考:https://www.t9vg.com/archives/635

1.3 安装包下载

官方下载页面:http://spark.apache.org/downloads.html

本文使用spark-2.2.2-bin-hadoop2.7,下载地址:https://pan.baidu.com/s/1kEQ09N8VPG_9oLwoxwDUaA 密码: 22gk

二,安装部署

2.1,解压和修改配置文件

###解压spark
tar -zxvf spark-2.2.2-bin-hadoop2.7.tgz

###修改conf
cd conf/
mv slaves.template slaves
vim slaves

###添加工作节点
docker01
docker02
docker03

###编辑sbin/spark-config文件,添加配置文件

export JAVA_HOME=/usr/local/jdk1.8.0_91 #这个要根据自身java_home修改

配置整个集群的环境变量(可选) 通过conf/spark-env.sh进一步配置整个集群的环境变量,如下变量,这里先用默认的值 。

变量描述
SPARK_MASTER_IP绑定一个外部IP给master.
SPARK_MASTER_PORT从另外一个端口启动master(默认: 7077)
SPARK_MASTER_WEBUI_PORTMaster的web UI端口 (默认: 8080)
SPARK_WORKER_PORT启动Spark worker 的专用端口(默认:随机)
SPARK_WORKER_DIR伸缩空间和日志输入的目录路径(默认: SPARK_HOME/work);
SPARK_WORKER_CORES作业可用的CPU内核数量(默认: 所有可用的);
SPARK_WORKER_MEMORY作业可使用的内存容量,默认格式1000M或者 2G (默认:  所有RAM去掉给操作系统用的1 GB);注意:每个作业自己的内存空间由SPARK_MEM决定。
SPARK_WORKER_WEBUI_PORTworker 的web UI 启动端口(默认: 8081)
SPARK_WORKER_INSTANCES每台机器上运行worker数量 (默认: 1). 当你有一个非常强大的计算机的时候和需要多个Spark worker进程的时候你可以修改这个默认值大于1 . 如果你设置了这个值。要确保SPARK_WORKER_CORE 明确限制每一个r worker的核心数, 否则每个worker 将尝试使用所有的核心 。
SPARK_DAEMON_MEMORY分配给Spark master和 worker 守护进程的内存空间 (默认: 512m)
SPARK_DAEMON_JAVA_OPTSSpark master 和 worker守护进程的JVM 选项(默认: none)

2.2 复制文件到另外2台机器

scp -r spark-2.2.2-bin-hadoop2.7/ docker02:/hadoop/
scp -r spark-2.2.2-bin-hadoop2.7/ docker03:/hadoop/

三,运行和测试

3.1启动集群

###在任意一台机器运行命令
[root@docker01 spark-2.2.2-bin-hadoop2.7]# sbin/start-all.sh 

starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark-2.2.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-docker01.out
docker03: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark-2.2.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-localhost.localdomain.out
docker02: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark-2.2.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-docker02.out
docker01: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark-2.2.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-docker01.out

###jps命令查看启动情况
[root@docker01 spark-2.2.2-bin-hadoop2.7]# jps

13168 Worker
13076 Master
13244 Jps

[root@docker02 hadoop]# jps
8704 Jps
8642 Worker

[root@docker03 hadoop]# jps
8704 Jps
8642 Worker

访问web界面:docker01:8080

3.2启动spark-shell连接集群

#在本地客户端连接服务器集群spark-shell

mbp15:bin mac$ ./spark-shell --master spark://docker01:7077

此时spark的监控界面会有对应的任务显示:

3.2提交spark任务到集群

本文将提交一个spark自带的examples

### --class:命名空间(包名)+类名;--master:spark集群的master;.jar:jar包位置;3:core并行度
mbp15:bin mac$ ./spark-submit --class org.apache.spark.examples.JavaSparkPi --master spark://docker01:7077 ../examples/jars/spark-examples_2.11-2.2.2.jar 3

注意:spark-client 和spark集群需要版本一致,否则将报错:Can only call getServletHandlers on a running MetricsSystem

转载于:https://my.oschina.net/u/3831696/blog/3082790

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值