我让我的学生使用bdutil
来创建Google Compute Engine集群,其中包含持久磁盘和HDFS作为默认文件系统。我们希望拥有永久磁盘,以便学生能够在数周内完成项目。但是,在重新部署集群之后,HDFS似乎不可用。在Google Cloud中维护持久HDFS
我的问题真的是“如何在群集的重新部署中维护持久的HDFS文件系统?”
这是我曾尝试
一切正常,在初始部署,创建永久磁盘。我创建一个目录用命令
$ hadoop fs -mkdir /foo
$ hadoop fs –put foo.txt /foo/foo.txt
$ hadoop fs –cat /foo/foo.txt
foo
我然后删除和redeply集群与DELETE_ATTACHED_PDS_ON_DELETE=false
和CREATE_ATTACHED_PDS_ON_DEPLOY=false
保持跨越调动
永久磁盘当我ssh到重新部署的集群中,我可以看到该文件我创建
$ hadoop fs –ls /foo
Found 1 items
-rw-r--r-- 3 mpcs supergroup 4 2014-10-01 13:16 /foo/foo.txt
但是,任何试图访问该文件的内容会失败:
$ hadoop fs –cat /foo/foo.txt
cat: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Zero blocklocations for /foo/foo.txt. Name node is in safe mode
手动关闭安全的代码并不能帮助
$ hadoop dfsadmin -safemode leave
Safe mode is OFF
$ hadoop fs –cat /foo/foo.txt
14/10/01 13:31:20 INFO hdfs.DFSClient: No node available for: blk_2908405986797013125_1002 file=/foo/foo.txt
14/10/01 13:31:20 INFO hdfs.DFSClient: Could not obtain blk_2908405986797013125_1002 from any node: java.io.IOException: No live nodes contain current block. Will get new block locations from namenode and retry...
*etc*
关于如何创建一个HDFS存储可以跨重新部署集群将大大坚持任何建议表示赞赏
感谢,
Mike