• 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进程全开,没有报错,验证通过。

  • 相关阅读:
    前端安全
    关于HTTPS的概念性了解
    数组去重
    防抖与节流
    对meta标签的再次认识
    关于路由, 我好奇的那些点
    关于构造函数,实例,原型对象一纯手工的理解
    数据库查找操作-java
    python之图像加载和简单处理
    python之excel表格操作
  • 原文地址:https://www.cnblogs.com/cmxbky1314/p/12096611.html
Copyright © 2020-2023  润新知