Я бы сказал, что DryadLinq - это самое близкое, что мы, люди .NET, должны к Hadoop. Но это зависит от того, для чего вы хотите использовать hadoop. Если вы ищете оптимизированную систему поддержки распределенных файлов (DFS), то DryadLINQ не то, что вы ищете. Он имеет аналог с DFS, но вы должны вручную создавать разделы и распределять каждый раздел.
Это, если сказать, что его распределенный аспект исполнения Hadoop, который вы ищете, чем DryadLINQ, действительно замечателен (и нет, я не связан с MS). Пока у вас есть кластерная установка Microsoft HPC, чем приступить к работе с DryadLINQ, очень просто.
Код, который вы пишете, на самом деле является просто прямым кодом LINQ, за исключением того, что вместо выполнения LINQ на IEnumerable<T>
вам необходимо выполнить его на PartitionedTable<T>
(структура распределенных данных самосоздания).
Что действительно было круто в DryadLINQ - это быстрый поворот вокруг (попытка, тестирование, настройка, повторение) при разработке алгоритмов. Вы просто пишете код LINQ для выполнения своих расчетов, а DryadLINQ позаботится о всей распределенной части выполнения. Это самый естественный аналог, с которым я столкнулся, что позволяет писать код для распределенной обработки так же, как писать код для обработки одного процесса.
Это не технически с Hadoop в C#, потоковое разделение процессов и данных передаются как строки, которые не могут быть настолько эффективными. – 2016-03-03 07:53:54