spark集群

准备工作

https://archive.apache.org/dist/spark/
jdk-8u251-linux-x64.tar.gz (自行下载)

服务器三台

192.168.41.12
192.168.41.13
192.168.41.14

配置服务器之间的 hostname,ssh 免密登录

  • hostname 在 /etc/hostname 文件中,使用vim /etc/hostname即可
  • 服务器别名配置在 /etc/hosts文件中,使用vim /etc/hosts即可
    如图所示
  • 现在检查您是否可以在不使用密码短语的情况下通过ssh连接到本地主机:
    ssh localhost
  • 如果没有密码短语无法通过ssh连接到本地主机,请执行以下命令:
# 产生密钥对,-t 指定生成的密钥类型 -P 旧密码 -f 保存密钥的文件
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

# 将产生的公钥追加到authorized_keys文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 修改文件权限
chmod 0600 ~/.ssh/authorized_keys

# 执行以上操作后可以实现免密登录本机
ssh node01

# 实现远程免密登录,需要将本机公钥拷贝到远程机器,username@ip或者username@hostname
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
# 免密验证
ssh  root@node01

配置Jdk,Spark环境

#Jdk
JAVA_HOME=/export/servers/jdk1.8.0
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

#Spark
export SPARK_HOME=/export/servers/spark
export PATH=$PATH:$SPARK_HOME/bin

配置Sparkconf目录

image.png

  • 一样的路子,cp template
  • 配置spark-env.sh
    image.png
export JAVA_HOME=/export/servers/jdk1.8.0
export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077
  • 配置slaves
    image.png

同步配置

  • 把 上述配置同步到 另外两台服务器
  • scp 命令

启动项目

  • 切换到 sbin 目录
  • ./start-all.sh 启动
  • ./stop-all.sh 停止
  • jps 查看

注意项

  1. master 显示 Master,Worker
  2. slaves 显示 Worker
  3. web访问地址:http://192.168.41.12:8080/
    image.png
### 如何配置和管理 Spark 集群 #### 合理规划资源分配 为了确保高效的Spark应用程序运行,合理设置集群中的内存、CPU以及存储资源至关重要。这不仅有助于提升程序性能,还能有效防止资源闲置造成的浪费,并保障各项任务能够顺利完成[^1]。 #### 编辑环境变量文件 `spark-env.sh` 具体来说,在配置Apache Spark集群时,需编辑`conf/spark-env.sh`这个脚本文件来定义必要的环境参数。此操作通常涉及指定Java安装路径、设定Master节点地址以及其他重要的系统属性等。通过命令行进入相应的目录并创建该文件副本后即可对其进行修改: ```bash [root@master servers]# cd spark/ [root@master spark]# cd conf/ [root@master conf]# cp spark-env.sh.template spark-env.sh [root@master conf]# vi spark-env.sh ``` 上述指令展示了如何定位到正确的配置文件位置,并利用文本编辑器打开它以便进一步调整所需参数[^2]。 #### 使用辅助脚本来简化日常运维工作 除了基本的资源配置外,还可以借助一些自定义编写的Shell脚本来帮助管理员更便捷地管理和维护整个集群。例如,“远程调用脚本”可用于跨机器执行相同的操作;而“远程复制目录脚本”则允许快速同步不同主机间的数据或软件包。“Spark集群服务管理脚本”更是提供了启动/停止服务等功能的支持,极大地提高了工作效率[^3]。 #### 提交作业至集群 当一切准备就绪之后,就可以考虑怎样把编写好的Spark应用发送给集群去处理了。这里涉及到多个可选参数的选择问题,比如是否启用动态资源分配机制、指定期望使用的Executor数量及其对应的内存量大小等等。这些都可以通过`spark-submit`工具来进行细致入微地控制。 ```python from pyspark.sql import SparkSession spark = ( SparkSession.builder.appName("example") .config("spark.executor.memory", "8g") # 设置executor内存为8GB .getOrCreate() ) data = [("Alice", 1), ("Bob", 2)] df = spark.createDataFrame(data, ["name", "id"]) df.show() spark.stop() ``` 以上代码片段展示了一个简单的PySpark例子,其中包含了部分常用的提交选项说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值