我正在使用hadoop版本1.0.1和Ubuntu linux 11.10运行单节点集群.当它崩溃时我正在运行一个简单的脚本,可能是因为我的电脑进入了睡眠状态.我尝试使用重新格式化文件系统
bin/hadoop namenode -format
并得到以下错误:
错误namenode.NameNode:java.io.IOException:无法锁定storage/app/hadoop/tmp/dfs/name.该目录已被锁定.在org.apache.hadoop.hdfs.server.common.Storage $ StorageDirectory.lock(Storage.java:602)
我尝试使用以下命令添加输入文件:
bin/hadoop fs -copyFromLocal dataDirectory/*.txt inputDirectory
并得到错误:
12/04/15 09:05:21 WARN hdfs.DFSClient:DataStreamer异常:org.apache.hadoop.ipc.RemoteException:java.io.IOException:文件/home/hduser/input/book1.txt只能复制到0个节点,而不是1个
12/04/15 09:05:21 WARN hdfs.DFSClient:错误恢复块null坏datanode [0] nodes == null 12/04/15 09:05:21 WARN hdfs.DFSClient:无法获取块位置.源文件"/home/hduser/input/book1.txt" - 正在中止......
之后,我看到输入目录中的文件,但它们的大小是0.有关如何添加文件的任何想法?我能够在hadoop崩溃之前添加文件,所以我可以重新安装linux和hadoop,但它似乎有点矫枉过正.谢谢.
你需要首先停止使用hadoop
斌/ stop-all.sh
然后尝试格式化文件系统,因为hadoop(名称节点和数据节点仍然运行)它锁定文件系统,可以给出该错误.
所以,如果在给出命令bin/stop-all.sh之后只是为了你可以做的就是杀死进程,那就是在shell上给出命令"jps",这将显示进程(java进程)并将有一个pid与每个进程相关的你可以命令"kill processno",比如"kill 23232",就像杀死所有进程一样,并使用你说的命令删除你指定的hdfs文件系统文件夹.
并且还检查磁盘空间是否足够可用,假设您已经在Windows中安装了ubuntu,您可以通过在/ host /和某个文件夹中指定文件系统来获得更多空间.
注意:您不需要格式化hdfs,因为您可以停止所有namenode和数据节点并再次启动hadoop进程,因为它不会经常被破坏,停止并启动hadoop如果它给出任何错误然后您格式化文件系统.
希望对你有帮助......
尝试手动删除存储名称节点数据的目录。mapred-site.xml这是由like等中的属性配置的mapred.local.dir。mapred.system.dir之后,停止 hadoop,重新格式化 namenode,然后重试。如果仍然遇到问题,请转到步骤 2
尝试将名称节点配置设置为其他路径而不是当前路径。之后,停止hadoop,重新格式化namenode并重试。如果仍然遇到问题,请转到步骤 3
验证是否有足够的磁盘空间。如果没有,则在配置 namenode 的分区中创建一些空间。如果仍然遇到问题,请转到步骤 4
在 中hdfs.site.xml,设置dfs.replication为 0。之后,停止 hadoop,重新格式化 namenode,然后重试。
如果仍然遇到问题,请告诉我您收到的错误/异常。
| 归档时间: |
|
| 查看次数: |
6109 次 |
| 最近记录: |