Тахион на главной репликации Dataproc Ошибка
У меня есть простой пример, работающий на главном узле Dataproc, где установлены Tachyon, Spark и Hadoop.
У меня ошибка репликации при записи в Tachyon из Spark. Есть ли способ указать это не нуждается в репликации?
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.
2 ответа
Вы можете настроить репликацию по умолчанию, установив вручную dfs.replication
внутри /etc/hadoop/conf/hdfs-site.xml
к некоторому значению, отличному от значения по умолчанию Dataproc 2
, Установка только на вашем мастере должна по крайней мере покрывать вызовы водителя, hadoop fs
звонки, и, кажется, правильно распространяется в hadoop distcp
вызовы также, так что, скорее всего, вам не нужно беспокоиться о том, чтобы также установить его на каждом работнике, пока работники получают свои конфигурации FileSystem из конфигураций с заданиями.
Обратите внимание, что репликация 1
уже означает единственную копию данных в целом, а не означает "одна реплика в дополнение к основной копии". Таким образом, репликация не может быть ниже 1. Минимальная репликация контролируется dfs.namenode.replication.min
В то же самое hdfs-site.xml
; вы можете увидеть это здесьBlockManager.java
,
Это проблема репликации, поэтому естественно посмотреть на состояние рабочих узлов.
Оказывается, они были по другой причине. После исправления эта ошибка исчезла.
То, что я хотел бы знать, и приму в качестве ответа, как вручную изменить коэффициент репликации.