我有一个在安装了 Tachyon、Spark 和 Hadoop 的 Dataproc 主节点上运行的简单示例。
我从 Spark 写入 Tachyon 时出现复制错误。有没有办法指定它不需要复制?
15/10/17 08:45:21 WARN org.apache.hadoop.hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/tachyon/workers/1445071000001/3/8 could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1550)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3110)
我打印的日志部分只是一个警告,但会立即出现 Spark 错误。
我检查了Tachyon 配置文档,发现了可能导致此问题的原因:
tachyon.underfs.hdfs.impl "org.apache.hadoop.hdfs.DistributedFileSystem"
鉴于这一切都在 Dataproc 主节点上,预装了 Hadoop 并且 HDFS 与 Spark 一起工作,我认为这是可以从 Tachyon 内部解决的问题。