nohup命令在大数据处理中的应用案例
导读:nohup在大数据处理中的典型应用 一、适用场景与价值 在SSH会话断开、终端关闭或本地电脑睡眠时,依然保持任务持续运行,避免因挂断信号导致作业中断。 与**&结合将任务放入后台,并通过重定向将标准输出/错误输出**持久化到日志文...
nohup在大数据处理中的典型应用
一、适用场景与价值
- 在SSH会话断开、终端关闭或本地电脑睡眠时,依然保持任务持续运行,避免因挂断信号导致作业中断。
- 与**& 结合将任务放入后台,并通过重定向将标准输出/错误输出**持久化到日志文件,便于审计与回溯。
- 适合运行时间较长的批处理与离线计算,如Hadoop MapReduce、Spark 批作业、Hive 查询脚本等。nohup本身不提供分布式能力,但与分布式框架配合,可稳定托管长时间任务的生命周期。
二、实战案例与命令模板
-
Hadoop MapReduce
- 示例:提交 JAR 并将日志追加到文件
nohup hadoop jar /path/to/app.jar com.example.YourJob arg1 arg2 > > mr.log 2> & 1 & echo "Job running with PID: $!" - 说明:使用**> > 追加日志便于多次运行或长期保留历史;2> & 1合并标准错误与标准输出;$!**获取最近后台进程 PID,便于后续追踪与终止。
- 示例:提交 JAR 并将日志追加到文件
-
Spark 批作业
- 示例:以 YARN 集群模式后台提交
nohup spark-submit \ --master yarn \ --deploy-mode cluster \ --class com.example.WordCount \ --driver-memory 2g \ --executor-memory 2g \ --executor-cores 2 \ --num-executors 30 \ --conf spark.default.parallelism=300 \ your-job.jar > spark.log 2> & 1 & echo "Spark job PID: $!" - 说明:在cluster模式下,应用由YARN ApplicationMaster托管,nohup主要用于本地提交进程的存活与日志落盘;作业状态应通过YARN ResourceManager UI或命令行查看。
- 示例:以 YARN 集群模式后台提交
-
Spark Shell 执行脚本
- 示例:运行 Scala 脚本并在后台保留输出
nohup spark-shell -f example.scala > spark_shell.log 2> & 1 & - 说明:适合交互式开发验证后的脚本化批处理;输出与错误统一记录,便于排查。
- 示例:运行 Scala 脚本并在后台保留输出
-
Hive 查询与导出
- 示例:执行 HiveQL 并将结果写入文件
nohup hive -e "SELECT * FROM orders" > orders_output.csv 2> & 1 & - 说明:对长时间查询/导出尤为有用;如需覆盖写入可使用**> ,追加使用> > **。
- 示例:执行 HiveQL 并将结果写入文件
三、运行监控与故障排查
- 实时查看日志
tail -f nohup.out tail -f spark.log tail -f mr.log - 查看进程
ps -ef | grep hadoop ps -ef | grep spark ps -ef | grep hive - 按 PID 终止
kill < PID> - Spark on YARN 的作业级管理
yarn application -list yarn application -kill < ApplicationID> - 要点:nohup保证本地提交进程不被挂断信号终止;但作业成功/失败与资源使用应以框架侧工具为准(如YARN UI、Spark History Server、HiveServer2 日志)。
四、最佳实践与注意事项
- 日志策略:统一落盘并区分文件(如app.log、error.log),生产环境建议使用**> > 追加,保留完整历史;必要时配合logrotate**做滚动切割。
- 资源与队列:在YARN上合理设置队列、内存与CPU,避免资源争用导致抢占或失败;nohup不替代调度器与资源管控。
- 环境一致性:在脚本中显式设置HADOOP_HOME / SPARK_HOME / PATH等,确保与登录会话一致,避免因环境变量缺失导致提交失败。
- 幂等与清理:MapReduce/Hive 输出路径应幂等(不存在再写或先清理),避免作业因路径已存在而失败。
- 监控告警:结合tail -f、grep关键字告警与YARN/Spark UI进行多维监控,必要时接入企业监控平台。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: nohup命令在大数据处理中的应用案例
本文地址: https://pptw.com/jishu/754189.html
