本文介绍了在MobaXterm中建立多个SSH会话窗口的三种方法,并解释了多窗口操作在大数据工作中的重要性。
通过快捷键复制标签页、会话管理栏创建新窗口或分离窗口实现分屏显示,可以轻松建立多个独立SSH渠道。
文章建议初学者从2个窗口开始(一个用于HiveSQL,一个用于HDFS命令),逐步适应多窗口工作模式,最终达到4-5个窗口的专业工作流程(分别用于SQL编写、文件操作、集群监控和日志查看)。
这种多窗口并行操作能显著提高工作效率,特别是在处理复杂任务和排查问题时。
使用 MobaXterm 打开第二个窗口(SSH渠道)
使用 MobaXterm 打开第二个窗口(SSH渠道)非常简单,主要有三种方法,你可以根据自己的习惯选择。
"SSH 渠道"可以理解为一条你与服务器之间建立的、用于执行命令的安全通信隧道。
更直白的解释:
一个窗口 = 一条独立的 SSH 渠道
你每打开一个新窗口并登录,就建立了一条新的渠道。
为什么要多条?
因为一条渠道同一时间只能执行一个任务。当你在窗口1跑一个需要等待的 Hive 查询时,这条渠道就被占住了。此时你需要开第二条渠道(新窗口)去执行其他命令,比如查看文件或日志。
方法一:使用快捷键或菜单(最简单)
直接复制当前标签页
在你要复制的会话标签上,直接右键点击,在弹出的菜单里选择 Duplicate tab (或 Clone current tab)。
这个操作会瞬间打开一个与当前会话完全相同的新标签页,不需要重新输入密码。对于你需要在保持一个连接运行 Hadoop/Hive 的同时,用另一个窗口执行其他 Linux 命令的场景,这个方法是最方便的。
方法二:通过左侧会话管理栏
如果你已经保存了会话配置,可以这样操作:
1. 找到左侧的"Sessions"边栏,双击你已经创建好的会话图标(比如你的 WSL 连接)。这样就直接打开了一个新的窗口或标签页。
方法三:同时打开两个独立窗口(适合分屏操作)
如果你想把两个窗口分屏显示,可以这样做:
1. 使用第一种方法创建一个新的标签页。
2. 在想要独立出去的标签页上右键 ,选择 Detach tab,它就会变成一个独立的窗口。这样你就可以利用 Windows 的快捷键(Win + 左/右方向键)把两个窗口并排显示,方便对照操作。
总结:结合你的学习场景
你现在已经在 MobaXterm 中通过 SSH 连接到了你的 WSL 环境,并且成功在其中一个窗口里启动并进入了 Hive 交互界面。
如果你想打开另一个"干净的" Linux 终端窗口来执行文件操作(比如用 hdfs dfs 命令上传文件),最简单的操作就是:
-
在当前窗口的标签上 右键。
-
选择 Duplicate tab。
这会在新标签页里马上给你一个全新的 Shell 环境,Hive 程序则继续在原来的窗口里运行,两者互不干扰。这样你就可以一边在 Hive 里写 SQL,一边在另一个窗口准备数据了。
为什么老师教学的时候说要尽量多打开几个窗口,有4、5个,感觉实际操作不需要那么多窗口
你这个问题问得很好,感觉非常敏锐。你的感觉是对的:对于课堂练习和基础操作,2个窗口确实足够了。
老师之所以强调要开4、5个窗口,不是为了让你手忙脚乱,而是为了模拟真实生产环境的工作流,并提前培养你作为一个大数据工程师的良好习惯。
我来帮你拆解一下,多出来的窗口到底有什么用,你会发现每个窗口都有它独特的"职责"。
核心原因:多任务并行,互不干扰
在真实的集群(比如几十台服务器)上工作,你的操作绝不是一个窗口能搞定的。
多窗口的核心思想就是职责分离 和并行观察。
4个窗口的"工作分配"实例
假设我们开了4个窗口,它们可以这样分工:
| 窗口 | 昵称 | 核心任务 | 在这个窗口里做什么? |
|---|---|---|---|
| 窗口1 | 司令台 | 执行主要Hive SQL | 编写SQL、查询数据、建表、测试逻辑。这是你的"主战场"。 |
| 窗口2 | 后勤部 | 操作HDFS文件系统 | 执行 hdfs dfs -put 上传数据文件,用 hdfs dfs -ls 检查文件是否到位。 |
| 窗口3 | 总参谋部 | 执行管理/监控命令 | 启动/停止Hadoop集群 (start-all.sh),用 jps 检查进程状态,查看 /tmp 目录等。 |
| 窗口4 | 医院急救室 | 专门看错误日志 | 当你发现窗口1的SQL报错,别慌,在这里用 tail -f $HADOOP_HOME/logs/*.log 实时监控日志,精准定位问题。 |
具体到你的学习过程,看看优势在哪:
-
避免反复"穿梭"
-
一个窗口的做法 :你要在Hive CLI里执行
show tables;,然后退出(exit;),回到Linux命令行去执行hdfs dfs -put,再重新输入hive命令进去。非常麻烦。 -
两个窗口的做法:窗口1专注写SQL,窗口2专注做Linux/HDFS操作,两边自由切换,效率翻倍。
-
-
实现"一边运行,一边观察"
- 当你的Hive任务跑起来后,窗口1会卡住直到任务结束。这时候,你可以用第二个窗口去执行
jps,实时查看ResourceManager、NodeManager等进程的CPU和内存占用,直观地理解MapReduce是怎么工作的。
- 当你的Hive任务跑起来后,窗口1会卡住直到任务结束。这时候,你可以用第二个窗口去执行
-
问题排查不中断
- 你的SQL执行失败了(这在学习中非常正常)。如果你只有一个窗口,需要先处理报错才能继续。但有了多窗口,就可以一边在窗口1里准备补救的SQL,一边在窗口2里用
tail -f命令查看详细的日志,排查问题和对解决方案可以同步进行。
- 你的SQL执行失败了(这在学习中非常正常)。如果你只有一个窗口,需要先处理报错才能继续。但有了多窗口,就可以一边在窗口1里准备补救的SQL,一边在窗口2里用
那你为什么感觉"实际不需要"?
因为你现在是在学习语法 ,操作比较简单,一个窗口完全够用。而老师是从项目实战的角度来教学的,一个真实的数据分析任务(比如先清洗数据,再计算,再导出结果),流程更长、更复杂,多窗口的优势就会立刻体现出来。
给初学者的建议
不用强求自己一次开很多窗口。你可以分阶段来适应:
-
第一阶段(当前阶段) :开2个窗口。
-
一个专门用来写Hive SQL。
-
一个用来执行
hdfs命令、ls、put等操作。这已经能让你爽很多了。
-
-
第二阶段 :开3个窗口。
-
当你写的SQL越来越复杂,开始遇到报错时,可以开第三个窗口,用它来实时查看日志。
-
tail -f /usr/local/hadoop/logs/hadoop-mumu-resourcemanager-MuJinqiu.log
-
-
第三阶段(熟练后):
- 自然而然你就会发现,为了让自己不手忙脚乱,你会主动开4、5个窗口,分门别类地管理你的所有操作。
总结一下:老师教的是一种高效的工作流和工程习惯,你现在感觉"没必要",恰恰说明你处于一个循序渐进的过程中,这很好。现在先试着开两个窗口,一个放SQL,一个放HDFS命令,你会慢慢发现这样确实方便很多。