首页 > 系统服务 > 详细

Linux执行 .sh 脚本报错

时间:2019-12-25 15:48:45      阅读:108      评论:0      收藏:0      [点我收藏+]

一、问题背景

  今天在学习hadopp框架时,编写一个hadoop启动进程的sheel脚本,由于不想使用Linux自带的VM编辑器,就在Windows下编辑脚本的内容,然后在Linux下运行此脚本,接着就报了几个错误

  报错原文:

Could not find or load main class namenode

Could not find or load main class datanode

  大致意思是说,他找不到我的那几个节点。

  一开始,我以为是我的hadoop配置文件写的有问题,但经过一番检查,和百度之后,都没有解决我的问题,运行脚本还是会出错。这我就想到应该不是我的配置有问题,而是这个脚本有问题。

  为了验证我的猜想,我将脚本中的命令,在Linux系统下直接运行,结果hadoop进程全部开启,没有一个失败,这就证明我的猜想是正确的。

二、问题原因

  既然,hadoop的配置文件没有问题,那就是该 .sh 脚本有问题,再进过一番努力,得知,在Windows下编辑的文件,他的每一行是以 "\n\r" 结尾的,但在Linux系统下则是 "\n",这就是问题所在。

三、解决问题

  使用指令 "sed -i ‘s/\r$//‘ xxxxxxx.sh",将 .sh 文件中的 "\r" 全部替换成空白符,即可解决问题

  最后实验检测,运行脚本文件,hadoop进程全开,没有报错,验证通过。

Linux执行 .sh 脚本报错

原文:https://www.cnblogs.com/cmxbky1314/p/12096611.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!