IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> idea调试远端服务器的Spark集群程序(存在跳板机) -> 正文阅读

[大数据]idea调试远端服务器的Spark集群程序(存在跳板机)

来公司刚好一个月了,甚是吃惊的是,居然没有人用远端调试的方式运行spark程序,这在一直写Torch和Keras的人看来,简直无法想象,所以一顿操作如下终于弄好。

其中主要难点在于本机和服务器中间存在跳板机,需要建立ssh连接。

思路主要参考这两篇文章:

1.http://www.cloudchou.com/web/post-996.html,这是一篇java远程debug教程,但是java和scala基本一致,所以可以参考

2.https://www.bigendiandata.com/2016-08-26-How-to-debug-remote-spark-jobs-with-IntelliJ/,这是同一网段内的spark debug,可以借鉴

融合两篇文章,就得到如下教程:

0、首先配置本机idea

之所以设置5006是因为默认的5005被占用了,应该是服务器上有其他人也在remote debug。

# 0. set "localhost" and "5006" in idea debug configurations
"Host":localhost
"Port":5006
"Command line arguments for remote JVM":-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006

在这里插入图片描述

1、连接跳板机

# 1. first, ssh to jump machine and set port as 5006
export JUMP_SERVER_USER=跳板机用户名
export SERVER_IP=你的服务器ip
export JUMP_SERVER_PORT=5044
export JUMP_SERVER_IP=跳板机ip

ssh -l $JUMP_SERVER_USER -L 5006:$SERVER_IP:5006 -p $JUMP_SERVER_PORT $JUMP_SERVER_IP -i ~/.ssh/你的rsa
# 如果没有rsa,去掉`-i`参数,下同

2、在跳板机内连接你的服务器

# 2. second, connect Server in jump machine
# the following command is running in jump machine

export USER_NAME=服务器用户名
export SERVER_IP=服务器ip
ssh -l $USER_NAME $SERVER_IP -p 5044 -i ~/.ssh/你的rsa

3、在你的服务器上运行spark,并设置debug和数据传输协议和端口等数据

就像正常提交spark程序一样~如下:

# 3. third, listening jvm program on port 5006 and run spark-submit
# the following command is running in server

export SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
spark-submit --packages "xxx" --files "xxx" --class xxx xxx.jar

如果终端出现这行:

Listening for transport dt_socket at address: 5006

那么就对了,现在可以去idea调试了~

对了,大概的调试原理如下:

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:37:33  更:2021-07-10 14:39:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 23:42:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码