运行发布python程序
- 当WARN太多
- 设置log4j.properties文件
log4j.rootCategory=WARN, console
- 设置log4j.properties文件
- 运行python程序
spark-submit sparktest.py
可直接启动- 注意这里是单机下运行
集群配置及启动
- 将编译好的 Spark 复制到所有机器的一个相同的目录下,比如 /home/yourname/spark
scp test2.pcap username@sipxxx:~/pcapfile
- 设置好从主节点机器到其他机器的 SSH 无密码登陆。
- 私钥:相当于钥匙🔑
- 公钥:相当于锁🔒
- 选择一个server作为master,并在master上编辑 conf/slaves 文件并填上所有工作节点的主机名。
dl8
- 启动
- 在主节点上运行
sbin/start-all.sh
(要在主节点上运行而不是在工作节点上)以启动集群。
- 在主节点上运行
-
提交应用
- 停止
- 要停止集群,在主节点上运行
bin/stop-all.sh
。
- 要停止集群,在主节点上运行
- worker的配置
- 检查各台机器配置的
conf/spark-env.sh
,每台机器都要一样,这样才能生效
- 检查各台机器配置的
- 为了让spark全局命令运行,需要将spark路径添加到环境变量
sudo vim /etc/profile
- 添加如下
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin export SPARK_HOME=/home/XXX/spark/spark-2.4.7-bin-hadoop2.6 export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
使配置立刻生效
worker出现问题
问题描述
spark集群在master上运行sbin/start-all.sh
后,jps
查看master和worker的进程,发现都有,但是用
w3m http://localhost:8080
查看集群管理GUI界面,发现worker并没有启动。
查看worker的log发现,如下。
- 记得遇到问题查log
解决方法
按照这里的解决办法,最后一个方法可行
https://blog.csdn.net/ybdesire/article/details/70666544
- 集群启动方法
- 启动master:
./sbin/start-master.sh -h master_ip
- (这里必须是ip地址,不能是dl8这种host name)
- 关闭:
./sbin/stop-master.sh -h master_ip
- 启动worker
- 在worker server上输入
./sbin/start-slave.sh spark://17x.xxx.xxx.8:7077
,后面的ip是master的ip- 关闭:
./sbin/stop-slave.sh spark://17x.xxx.xxx.8:7077
- 启动master:
- 启动成功
- 另外,也可以在master的slaves配置文件中,写worker的IP,而不是hostname
- 这样就可以在master上直接运行
sbin/start-all.sh
启动集群,运行sbin/stop-all.sh
关闭集群,更加方便
- 这样就可以在master上直接运行
注意
- 默认情况下,Spark 的 RDD 会在你每次对它们进行action操作时重新计算。如果想在多个行动操作中重用同一个 RDD,可以使用
RDD.persist()
让 Spark 把这个 RDD 缓存下来。 - ubuntu查看防火墙状态
sudo ufw status
spark一些关键配置参数
-
SPARK_LOCAL_DIRS 指定executor运行生成的临时文件目录,默认是/tmp,由于/tmp目录有可能是采用了tmpfs,建议在实际部署中将其更改到其它目录
- 修改配置spark-env.sh增加:
export SPARK_LOCAL_DIRS=spark.local.dir /diskb/sparktmp,/diskc/sparktmp,/diskd/sparktmp,/diske/sparktmp,/diskf/sparktmp,/diskg/sparktmp
-
SPARK_WORKER_CORES
- Total number of cores to allow Spark applications to use on the machine (default: all available cores-所有的核心).
-
SPARK_WORKER_MEMORY
- Total amount of memory to allow Spark applications to use on the machine, e.g. 1000m, 2g (default: total memory minus 1 GiB-最大内存减1); note that each application’s individual memory is configured using its spark.executor.memory property.
-
SPARK_WORKER_DIR
- Directory to run applications in, which will include both logs and scratch space (default: SPARK_HOME/work)
- 里面存了一些运行日志