2015-10-17 2 views
1

У меня есть простой пример, выполняющийся на главном узле Dataproc, где установлены Tachyon, Spark и Hadoop.Tachyon on Dataproc Master Replication Error

У меня есть ошибка репликации, написанная 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 config docs, и нашел что-то, что может быть причиной этого:

tachyon.underfs.hdfs.impl "org.apache.hadoop.hdfs.DistributedFileSystem" 

Учитывая, что это все на главном узле Dataproc, с Hadoop предустановленным и HDFS работы с искрой, я думаю, что это это проблема, разрешимая изнутри Тахиона.

+1

На том же кластере, вы подтвердили, что базовая установка HDFS действительно здоровая? Если вы запустите 'hdfs dfsadmin -report' на главном узле, он сообщит ненулевое число живых данных? –

+0

@DennisHuo Это, вероятно, так, как рабочие закрываются. Попытаюсь. – BAR

+0

@ DennisHuo Это решило, спасибо. Теперь мне интересно, почему я не могу отправлять задания Spark после первого перезапуска (post Tachyon install). – BAR

ответ

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; вы можете видеть, что он ссылается на here in BlockManager.java.

1

Это проблема репликации, естественно, будет рассмотрен статус рабочих узлов.

Оказывается, они были сбиты по другой причине. После исправления этой ошибки эта ошибка исчезла.

Что я хотел бы знать и принимаю в качестве ответа, как изменить коэффициент репликации вручную.