Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么hadoop服务会立即退出?_Hadoop_Docker - Fatal编程技术网

为什么hadoop服务会立即退出?

为什么hadoop服务会立即退出?,hadoop,docker,Hadoop,Docker,我指的是cloudera.com在ubuntu上安装cdh4:precise系统 RUN for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do service $x start ; /etc/init.d/$x status; jps; done 输出 hadoop namenode starting hadoop namenode is running 7 jps 43 namenode hadoop datan

我指的是cloudera.com在ubuntu上安装cdh4:precise系统

  RUN for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do service $x start ; /etc/init.d/$x status; jps; done
输出

  hadoop namenode starting
  hadoop namenode is running   
   7 jps
  43 namenode

  hadoop datanode starting
  hadoop datanode is running
   7 jps
  43 namenode
  89 datanode

  hadoop secondary namenode starting
  hadoop decondary namenode is running
   7 jps
  43 namenode
  89 datanode
  95 secondarynamenode
在这句话之后,我尝试
jps

   7 jps
  43 process info unavail
  89 process info unavail
  95 process info unavail
为什么会这样?这些作业的运行时间是否仅达到docker中循环的运行时间

编辑: 目录/var/lib/hadoop hdfs/cache/hdfs/dfs/name处于不一致状态:存储目录不存在或不可访问


这是我在日志中看到的错误。我在dockerfile中执行这些命令时遇到此错误。但是,如果我在构建映像后运行这些命令,它就可以正常工作。

在vanilla Docker中,您不应该依赖在运行步骤之间运行的服务。他们不会。作为同一运行步骤的一部分执行
jps
,或者更好的是,作为CMD或ENTRYPOINT语句的一部分启动服务

你检查日志了吗?@mbaxi请查看我的编辑。有什么帮助吗?谢谢你,Mykola。请告诉我如何指定它好吗?我尝试了
CMD sh/etc/init/d/hadoop hdfs namenode
。它不会出现在JPS中。最好的方法是向他人学习,例如查看
sequenceiq/hadoop docker
图像。好的,Mykola。我的文件/etc/init.d/hadoop-hdfs-namenode是一个服务。不是.sh文件。我可以和CMD一起使用吗?它说“unrecognized service”@GopsAB最好把堆栈溢出的问题放在更集中的位置。您的问题是关于运行
步骤启动的服务的可用性。我确认你的怀疑是正确的,并试图指出你可能会遵循的方向。您为什么会得到
无法识别的服务
这个问题与原始问题相去甚远,我建议您在仍然无法识别服务的情况下创建一个新的服务,并填写所有必要的和相关的详细信息。