Почему Hadoop имеет разные механизмы связи для связи между датанодами и датано-наменодами? - PullRequest
2 голосов
/ 26 марта 2012

Связь datanode-namenode использует пакет org.apache.hadoop.ipc;в то время как связь между датодами основана на простой связи через сокеты.

Какова мотивация такого дизайна?

Ответы [ 2 ]

6 голосов
/ 27 марта 2012

Существуют две разные задачи в зависимости от их требований, поэтому две разные реализации можно объяснить желанием лучше удовлетворить требования.
Связь DataNode -> NameNode более сложна, чем связь DataNode-DataNode, и, следовательно, оправдывает RPC.
Связь DataNode-DataNode чрезвычайно проста с одной стороны и требует эффективной транспортировки большого количества данных. Можно констатировать, что сокеты являются наиболее эффективным решением для этого случая.

0 голосов
/ 26 марта 2012

Согласно JavaDoc, оба DatanodeProtocol и InterDatanodeProtocol получены из org.apache.hadoop.ipc.VersionedProtocol.

Сказав это, основываясь на документациипохоже, что DataNode (который реализует DatanodeProtocol) делает намного больше (соединения с Namenode, другими узлами данных и клиентами).Где в качестве связи между узлами данных (через InterDataNodeProtocol) указывается простая связь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...