启动命令实在是太多了。。记录下
0. 启动Pyspark
默认情况下,pyspark 会以 spark-shell启动
pyspark --master local[*]
local:让spark在本地模式运行【*】代表使用全部的线程, 也可以规定使用的线程
1.Hadoop Yarn 启动 pyspark
首先启动Hadoop yarn,
start-all.sh
Spark APP 可以在Yarn 资源管理器 上运行
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop pyspark --master yarn -deploy-mode client
HADOOP_CONF_DIR 变量设置了Hadoop 配置文件变量, 路径就是hadoop的安装位置, 放在~/.bashrc 里也挺好
vim ~/.bashrc
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
source ~/.bashrc
2.Spark Standalone模式运行 pyspark
启动 spark standalone
start-all.sh
去 master:8080下确认所有的worker 都正确启动了
然后
pyspark --master spark://master:7077 --num-executors 1 --total-executor-cores 3 --executor-memory 512m
master spark:master:7077 以standalone模式启动
num-executors 1 执行计算的executor 1个进程,数量决定了你计算的速度, ps:如果你是虚拟机的化,别弄太多 10个就算是极限了-。-||
executor-memory 512m 内存大小,executor个数*内存大小,(考虑电脑能不能受得了。)
3. 从Jupyter启动Pyspark
1.local模式下
PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark
其实可以前两个变量可以放在 ~/.bashrc里
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
放到系统变量后,要是想再用回spark-shell,得删掉这两个系统变量并
unset PYSPARK_DRIVER_PYTHON
就能该回来了
2.hadoop yarn-client模式
三个变量 MASTER=yarn-client pyspark
就可以在localhost:8088下看到这个app
3.stand alone模式
三个变量 MASTER=spark://master:7077 pyspark --num-executors 1 --total-executor-cores 2 --executor-memory 512M
1. spark-submit
格式
spark-submit --driver-memory 2g --master local[4] application.py
driver程序使用2g内存,啥事driver,啥事executor,说的非常简单一点, driver可以看程python的main函数,用来生成spark Context 以及程序的所有操作, 他决定给各个worker啥活, 然后这个活会被发送的各个executor里去干, 这样,如何分配内存会了把。
yarn模式
spark-submit --driver-memory 512m --executor-cores 2 --master yarn --deploy-mode client /usr/local/app.py
standalone
spark-submit --master spark://master:7077 --deploy-mode client executor-memory 512m --total-executor-cores 2 app.py