hadoop :mkdir: 'input': No such file or directory 相關問題

初接觸hadoop,遇到的問題真很多。在執行bin/hadoop fs -mkdir input時,出錯了。測試發現,bin/hadoop fs -ls也不行。排查了一會才發現是版本的緣由:java

2.x之前的版本這個命令,2.x以後的版本命令改爲了:node

bin/hdfs dfs -mkdir -p ..apache

input目錄建立完成以後,開始上傳本地目錄:oop

bin/hdfs dfs -put /root/data /input  

發現報錯,試試拷貝本地文件:測試

bin/hdfs dfs -copyFromLocal /root/data/person.txt /input 

發現也報錯:ui

看提示應該是datanode沒啓動。經過jps查看,果真是。而後開始重啓hadoop,重啓了以後,發現datanode依然沒成功啓來。沒辦法了,去查啓動日誌,發現如下異常:spa

FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to spark1/192.168.122.113:9000. Exiting.3d

java.io.IOException: Incompatible clusterIDs in /usr/local/programs/hadoop/tmp/dfs/data: namenode clusterID = CID-19f887ba-2e8d-4c7e-ae01-e38a30581693; datanode clusterID = CID-14aac0b3-3c32-45db-adb8-b5fc494eaa3d日誌

這提示應該是指兩個clusterID不一致。開始檢查dfs下文件,data 和 name文件夾下有一部分文件。本想試試能不能經過文件覆蓋解決不一致問題,後來以爲麻煩,就直接把文件name 和 data下的文件刪了。而後重啓hadoop...code

本覺得應該很順利,沒想問題又來了:

2016-05-13 15:28:28,952 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /usr/local/programs/hadoop/dfs/name/in_use.lock acquired by nodename 25041@spark1
2016-05-13 15:28:28,954 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
java.io.IOException: NameNode is not formatted.
	at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1022)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:741)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:538)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:597)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:764)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:748)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

接着去格式化namenode..而後,

bin/hdfs dfs -mkdir -p /input
bin/hdfs dfs -put /root/data /input

OK.

接下來,終於能夠開始經過spark讀取分析hdfs的文件了。。。

相關文章
相關標籤/搜索