我有一个运行在Dataproc主节点上的简单示例,在该节点上安装了Tachyon、Spark和Hadoop。
我有一个复制错误,从斯派克写入塔奇扬。是否有任何方法来指定它不需要复制?
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)我打印的日志部分只是一个警告,但火花错误会立即出现。
我检查了Tachyon配置文档,发现了一些可能导致这种情况的东西:
tachyon.underfs.hdfs.impl "org.apache.hadoop.hdfs.DistributedFileSystem"考虑到这都是在Dataproc主节点上进行的,Hadoop预装好了,HDFS与Spark一起工作,我认为这是一个可以在Tachyon内部解决的问题。
发布于 2015-10-29 17:50:49
您可以通过手动将dfs.replication设置为/etc/hadoop/conf/hdfs-site.xml中的默认2以外的值来调整默认复制。只在您的主服务器上设置它至少应该包括驱动程序调用、hadoop fs调用,并且它似乎也正确地传播到hadoop distcp调用中,所以很可能您不需要担心也将它设置在每个员工身上,只要员工从作业范围内的配置中获得他们的FileSystem信任。
注意,1的复制已经意味着数据的一个总副本,而不是意味着“除了主副本之外还有一个副本”。所以,复制不能真的低于1。最小的复制是用dfs.namenode.replication.min在同一个hdfs-site.xml中控制的;您可以看到它引用了BlockManager.java。
发布于 2015-10-27 18:58:52
这是一个复制问题,可以自然地查看工作节点的状态。
结果发现他们是因为另一个原因而倒下的。修正后,这个错误消失了。
我想知道并将接受的答案是如何手动更改复制因子。
https://stackoverflow.com/questions/33192125
复制相似问题