Spark Chapter 5 PySpark 运行模式

2019-08-14  本文已影响0人  深海suke

# 1 目前支持的模式

1)local

2)standalone

3)Mesos国内用的不多

4)YARN 目前国内70%的开发选择

5)Kubernetes——实验版本

* 有何区别,开发过程中如何选择

# 2 local模式

在开发过程中使用这种模式,step1  功能跑通—>step2 性能调优.

帮助命令查看:./pyspark --help

*重要pyshark参数

--master local[2] 

--name

--py -file,.zip,.txt

* 启动案例

```

./pyshark --master local[2] --name spark-local /home/xx.py file:///home/data file:///home/data

```

---

## 1 master说明

local——一个线程

local[2]

local[K,F] K个线程,F次最大失败

local[*]  所有

local[*,F]

spark://HOST:PORT  standalone模式

spark://HOST1:PORT1,HOST2:PORT2  standalone模式

mesos://HOST:PORT

yarn

k8s://HOST:PORT

## 2 standalone 模式

hdfs:NameNode,DataNode

yarn:ResourceManager NodeManager

step1启动集群./sbin/start-master.sh

step2启动从节点./sbin/start-slave.sh

ps:如果启动成功,任务上会有master和worker

*配置spark路径

每台机器都在相同的路径下不部署spark

文件名:$SPARK_HOME/conf/slaves

添加内容hadoop000,hadoop001,……

* 启动:

启动命令:$spark_home/sbin/start-all.sh

启动的时候关注启动日志,启动失败的原因可以从日志里去看

ps:要提前配置$JAVA_HOME

检测:

jps:检测是否有master和worker启动

webUI:端口可以在日志中的MasterUI后面进行查找,一般8080(在提交pyshark作业时可以设置,--webui-post PORT);使用时在浏览器的输入hadoop000:8080。(内部的端口一般为7077,通过-p PORT,--port PORT设置)

  *配置spark中的$JAVA_HOME:$spark_home/sbin/spark-env.sh中添加(cp spark-env.sh.template spark-env.sh )

  *查看系统$JAVA_HOME:eoch

  * 日志查看:cat 日志地址,地址在运行的第一、二行会有

  *查看进程情况:jps

  *杀掉进程kill -9进程编号

* 测试模式,节点数量大于1,如果你使用本地文件进行测试,保证每个节点上都有本地测试的文件(推荐用hdfs文件进行测试)

```

./spark -sumbit --master spark://hadoop000:7077 -name spark-standalone /home/hadoop/script/spark0402.py hdfs://hadoop000:8020/wc.txt hdfs://hadoop000:8020/wc/output

```

  *hdfs操作 

查看hdfs上的内容:hadoop fs -ls/

传送文件到hdfs上:hadoop fs -put ~/data/hello.txt /wc.txt

查看hdfs上文件内容:hadoop fs -text /wc.txt

外部对其使用时hdfs://hadoop000:8020/hello.txt[file:///home/hadoop/wc/output](file:///home/hadoop/wc/output)

## 3 yarn 模式【重点】

reduce yarn,spark on yarn 70%

把spark作为客户端,需要做的事情时提交作业到yarn上去执行。

yarn vs standalone

yarn:只需要一个节点,可以提交作业,不需要spark集群(不需要启动master和worker;如果是standalone模式,则spark集群上每个节点都需要部署spark,然后需要启动spark集群(需要启动master和worker))

*启动yarn

  *?

*在yarn上运行spark

```

./spark -sumbit --master yarn -name spark-yarn /home/hadoop/script/spark0402.py hdfs://hadoop000:8020/wc.txt hdfs://hadoop000:8020/wc/output

```

* 环境变量配置

使用yarn模式的时候,需要指定HADOOP_CONF_DIR orYARN_CONF_DIR

即在$spark_home/sbin/spark-env.sh添加HADOOP_CONF_DIR =$HADOOP_HOME地址(配置文件记得sourse)

如何规避架包传输?

*yarn支持  client和cluster:driver运行在哪里

  *如果是cluster上运行,则会运行在application master节点上。

  * client模式提交作业进程是不能停止的,cluster提交完就可以断开了,因为driver是并行在AM上的

  *--master yarn-client/cluster ,也可以加在参数--deploy-mode后面

*yarn日志查看

  *(Jobhistory课程10小时学会hadoop)

  *yarn logs -applcationId

tips:pyspark/spark-shell——交互式运行程序client,如果用集群模式,只能用./spark or ./spark-sumbit

上一篇下一篇

猜你喜欢

热点阅读