今天重啓了下Hadoop集羣,使用Eclipse調試hdfs api的時候報錯:java
[WARNING] java.lang.NullPointerException at org.conan.kafka.HdfsUtil.batchWrite(HdfsUtil.java:50) at org.conan.kafka.SingleTopicConsumer.run(SingleTopicConsumer.java:144) at java.lang.Thread.run(Thread.java:745) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
查找HdfsUtil.java 第50行node
os.write(buff, 0, buff.length);
發現是寫的時候報錯,而後折騰了一下子,也沒找到緣由,後來想會不會是權限問題(電腦不是管理員身份,hadoop集羣是以root身份運行),可是以前已經把hdfs文件夾的權限改成了777。在試試,hdfs dfs -chmod -R 777 /input,而後再次調試,OK。api
那麼問題來了,Hadoop集羣難道在每次重啓後(沒有進行namenode format)都要修改文件(夾)的權限?oop
依據實踐來看,應該是的。spa