zoukankan      html  css  js  c++  java
  • Linux执行 .sh 脚本报错

    一、问题背景

      今天在学习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下编辑的文件,他的每一行是以 " " 结尾的,但在Linux系统下则是 " ",这就是问题所在。

    三、解决问题

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

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

  • 相关阅读:
    关于螺旋矩阵的问题
    JDK 1.5 for 循环的新写法
    Java基础视频笔记(三)
    关于接口的理解
    常用的DOS命令
    Java基础视频笔记(二)
    Eclipse的常用快捷键备忘
    Java基础视频笔记(四):泛型
    异常设计准则
    多重继承和虚继承的内存布局(转)
  • 原文地址:https://www.cnblogs.com/cmxbky1314/p/12096611.html
Copyright © 2011-2022 走看看