spark集群使用相关

本文详细介绍了Spark Standalone集群和Spark on YARN的部署步骤,包括所需组件、配置及测试方法。重点讲解了如何使用spark-submit提交任务,并提供了官方文档链接以供参考。此外,还提到了Spark高可用性的设置建议。

spark standalone集群部署

只需ssh+jdk+spark-with-hadoop+[zookeeper(HA)]

spark on yarn集群部署

需要ssh+jdk+hadoop+yarn+spark+[zookeeper(HA)]
spark-shell --master yarn

查看集群情况

http://:4040/
http://:8080/

集群内测试:

bin/spark-submit --class org.apache.spark.examples.JavaSparkPi --master spark://cdh1:7077 examples/jars/spark-examples_2.11-2.4.0.jar 2
run-example SparkPi 10
val textFile = spark.read.textFile(“file:///root/abc”) #spark读取本地文件 每个节点 同样路径 都要有数据文件 ,HDFS可以共享,有一份就可以了
textFile.count()
val nums = sc.parallelize(List(1,2,3,4,5))
nums.count()

集群外客户端测试

bin/spark-submit
–class org.apache.spark.examples.JavaSparkPi
–master spark://cdh1:7077
–total-executor-cores 2
–num-executors 1
–driver-memory 512m
–executor-memory 512m
–executor-cores 1
examples/jars/spark-examples_2.11-2.4.0.jar 2
或者
bin/spark-submit --class org.apache.spark.examples.JavaSparkPi --master spark://cdh1:7077 --driver-memory 512m --executor-memory 512m --total-executor-cores 2 --executor-cores 1 examples/jars/spark-examples_2.11-2.4.0.jar 2
或者
bin/spark-submit --class org.apache.spark.examples.JavaSparkPi --master spark://cdh1:7077 examples/jars/spark-examples_2.11-2.4.0.jar 2
#注意,要先在客户集群中每个节点的hosts添加客户机的ip-主机名

官方方法

http://spark.incubator.apache.org/docs/2.4.0/quick-start.html

官方部署说明

http://spark.incubator.apache.org/docs/2.4.0/spark-standalone.html#installing-spark-standalone-to-a-cluster

spark高可用参考

https://www.cnblogs.com/phy2020/p/12723547.html

### Spark集群使用体验和性能分析 #### 使用体验 Spark 可以通过多种方式进行部署,其中一种常见的方式是在 YARN 上运行 Spark[^1]。这种模式允许 Spark 和 Hadoop 组件紧密结合,从而简化了在已有 Hadoop 集群上的集成过程。此外,Spark 还支持 Kubernetes (K8s),官方文档提供了一种标准的 `spark-submit` 方法来提交任务到 K8s 集群中[^2]。此方法仅需客户端安装必要的工具(如 kubectl),而无需在集群节点上预装任何特定环境。 以下是 Spark 的主要使用特点: - **易用性**:无论是基于 YARN 或者 Kubernetes,Spark 提供了灵活的任务提交接口。 - **灵活性**:可以通过简单的配置调整适应不同的计算需求。 ```bash # 示例:向 Kubernetes 提交 Spark 作业 spark-submit --master k8s://https://<kubernetes-master-url> \ --deploy-mode cluster \ --name spark-pi \ --class org.apache.spark.examples.SparkPi \ --conf spark.kubernetes.container.image=<your-spark-image> \ local:///path/to/examples.jar ``` #### 性能表现 Spark 的性能优化可以从多个角度入手,特别是在处理大规模数据集时。针对 shuffle 操作引发的数据倾斜问题,有一种有效的解决方案是启用 `spark.shuffle.consolidateFiles` 参数[^4]。当设置为 true 时,它可以显著减少磁盘 I/O 开销并提高整体性能。另外,对于某些场景下 SortShuffleManager 不适用的情况,切换至 HashShuffleManager 并开启 consolidate 机制可能带来高达 30% 的性能提升。 除此之外,Spark 对于聚合类的操作具有天然的优势[^3]。通过对这些操作进行合理调优,能够大幅缓解甚至完全消除因数据分布不均而导致的瓶颈现象。 #### 优势与劣势 ##### 优点 - **高性能**:得益于内存计算能力以及内置的各种优化策略。 - **生态系统完善**:拥有丰富的库支持机器学习、流式处理等功能模块。 - **兼容性强**:可无缝对接 HDFS、Cassandra 等主流大数据存储系统。 ##### 缺点 - **资源消耗大**:由于大量依赖内存作为运算载体,在面对超大规模数据量时可能会遇到成本增加的问题。 - **调试复杂度高**:分布式架构下的错误排查相对单机程序更加困难一些。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值