spark运行分布式集群

本文介绍了如何在分布式环境中配置和启动Spark集群,包括设置log4j.properties、配置集群、启动与停止步骤、解决worker未启动的问题。同时,强调了Spark关键配置参数如SPARK_LOCAL_DIRS、SPARK_WORKER_CORES和SPARK_WORKER_MEMORY的作用,以及如何检查和管理集群状态。
摘要由CSDN通过智能技术生成


运行发布python程序

  • 当WARN太多
    • 设置log4j.properties文件
      log4j.rootCategory=WARN, console
      
  • 运行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的slaves配置文件中,写worker的IP,而不是hostname
    • 这样就可以在master上直接运行sbin/start-all.sh启动集群,运行sbin/stop-all.sh关闭集群,更加方便

注意

  • 默认情况下,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)
    • 里面存了一些运行日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值