《Spark大数据分析实战》——2.2节远程调试Spark程序

简介:

本节书摘来自华章社区《Spark大数据分析实战》一书中的第2章,第2.2节远程调试Spark程序,作者高彦杰 倪亚宇,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.2 远程调试Spark程序
本地调试Spark程序和传统的调试单机的Java程序基本一致,读者可以参照原来的方式进行调试,关于单机调试本书暂不赘述。对于远程调试服务器上的Spark代码,首先请确保在服务器和本地的Spark版本一致。需要按前文介绍预先安装好JDK和Git。
(1)编译Spark
在服务器端和本地计算机下载Spark项目。
通过下面的命令克隆一份Spark源码:

git clone https:// github.com/apache/spark
然后针对指定的Hadoop版本进行编译:
SPARK_HADOOP_VERSION=2.3.0 sbt/sbt assembly

(2)在服务器端的配置
1)根据相应的Spark配置指定版本的Hadoop,并启动Hadoop。
2)对编译好的Spark进行配置,在conf/spark-env.sh文件中进行如下配置:

export SPARK_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9999"

其中“suspend=y”设置为需要挂起的模式。这样,当启动Spark的作业时候程序会自动挂起,等待本地的IDE附加(Attach)到被调试的应用程序上。address是开放等待连接的端口号。
(3)启动Spark集群和应用程序
1)启动Spark集群:

./sbin/start-all.sh
2)启动需要调试的程序,以Spark中自带的HdfsWordCount为例:
MASTER=spark:// 10.10.1.168:7077
./bin/run-example 
org.apache.spark.examples.streaming.HdfsWordCount
hdfs:// localhost:9000/test/test.txt

3)如图2-7所示,执行后程序会挂起并等待本地的Intellij进行连接,并显示“Listening for transport dt_socket at address: 9999”:


764ab81258f1c72253d02c09e65b848a2862f955

2)在“Run/Debug Conf?igurations”对话框中填入需要连接的主机名和端口号以及其他参数,如图2-8所示。
3)在程序中设置断点进行调试。
通过上面的介绍,用户可以了解如何进行远程调试。对于单机调试方式则和日常开发的单机程序一样,常用方式是设置单机调试断点之后再进行调试,在这里并不再展开介绍。

相关文章
|
1天前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
15 1
Spark快速大数据分析PDF下载读书分享推荐
|
3天前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
18 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
7天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之ODPS Spark找不到自己的stdout,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
19 2
|
7天前
|
分布式计算 资源调度 Hadoop
Java大数据处理:Spark与Hadoop整合
Java大数据处理:Spark与Hadoop整合
|
14天前
|
分布式计算 DataWorks MaxCompute
MaxCompute操作报错合集之在Spark访问OSS时出现证书错误的问题,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
14天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之使用spark.sql执行rename分区操作,遇到任务报错退出的情况,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
3天前
|
SQL 机器学习/深度学习 分布式计算
大数据平台之Spark
Apache Spark 是一个开源的分布式计算系统,主要用于大规模数据处理和分析。它由UC Berkeley AMPLab开发,并由Apache Software Foundation维护。Spark旨在提供比Hadoop MapReduce更快的处理速度和更丰富的功能,特别是在处理迭代算法和交互式数据分析方面。
33 0
|
9天前
|
存储 人工智能 OLAP
深度|大模型时代下,基于湖仓一体的数据智能新范式
本次文根据峰会演讲内容整理:分享在大模型时代基于湖仓一体的数据产品演进,以及我们观察到的一些智能开发相关的新范式。
|
14天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用问题之如何查看数据离线同步每天从MySQL抽取的数据量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
14天前
|
分布式计算 大数据 Java
MaxCompute产品使用问题之是否可以恢复最近两天生命周期清理的数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。