Вопрос

Итак, я с интересом смотрю на Hadoop , и, честно говоря, я очарован вещи не становятся намного круче.

Моя единственная незначительная проблема в том, что я являюсь разработчиком на C # и работает на Java.

Дело не в том, что я не так хорошо понимаю Java, как ищу Hadoop.net, NHadoop или проект .NET, охватывающий Google MapReduce . Кто-нибудь знает об этом?

Это было полезно?

Решение

Рассматривали ли вы использование потоковой передачи Hadoop?

Я все время использую его в python: -).

Я начинаю видеть, что гетерогенный подход часто является лучшим, и похоже, что другие люди делают то же самое.

Если вы посмотрите на такие проекты, как буферы протокола или экономию на Facebook, вы увидите, что иногда лучше всего использовать приложение, написанное на другом языке, и создать клей на языке, который вы предпочитаете.

Другие советы

Недавно MySpace выпустила свою платформу .NET MapReduce, Qizmt , в качестве открытого источника, поэтому это также потенциальный соперник в этом пространстве.

Я ответил на ваш вопрос в своем вопросе здесь

Чтобы сказать это здесь, в источнике:

Microsoft отказался от своей альтернативы ( Dryad ) в пользу Hadoop. В следующем году они выпустят MS SQL Server 2012 с интеграцией Hadoop. Поддержка Azure и Windows Sever разрабатывается даже сейчас, когда мы говорим.

Он будет доступен в первой половине 2012 года.

Hadoop является платформой # 1 BigData и будет поддерживаться компанией с открытым исходным кодом и частной собственностью. источник (Java, .Net, Python, ...), даже Oracle принимает его.

Если вы что-то разрабатывали, подождите, если вы используете платформу .Net.

Дополнительная информация о том, что возможно, будет доступна здесь

Я бы сказал, что DryadLinq - самая близкая вещь, которую мы, люди .NET, имеем к Hadoop. Но это зависит от того, для чего вы хотите использовать hadoop. Если вы ищете оптимизированную систему самообслуживания распределенных файлов (DFS), то DryadLINQ это не то, что вы ищете. У него есть аналог DFS, но вы должны вручную создать разделы и распределить каждый раздел.

Это, как говорится, если аспект распределенного выполнения Hadoop, который вы ищете, чем DryadLINQ, действительно замечательный (и нет, я не связан с MS). Если у вас есть Microsoft HPC настройка кластера, то начать работу с DryadLINQ очень просто.

Код, который вы пишете, на самом деле является простым кодом LINQ, за исключением того, что вместо выполнения LINQ на IEnumerable<T> его нужно выполнять на PartitionedTable<T> (самораспределенная структура распределенных данных).

Что действительно здорово в DryadLINQ, так это быстрый поворот во времени (попытка, проверка, настройка, повторение) при разработке алгоритмов. Вы просто пишете код LINQ для выполнения своих расчетов, и DryadLINQ позаботится обо всей распределенной части выполнения. Это самый естественный аналог, с которым мне доводилось сталкиваться, который делает написание кода для распределенной обработки таким же, как написание кода для обработки одного процесса.

Вы можете взглянуть на что-то вроде RavenDb, которое обеспечивает очень приличную поддержку MapReduce для довольно большого размера данных. поскольку он встроен в .Net, для него доступен правильный клиентский API LINQ.

http://ravendb.net/

Для начала вы можете прочитать мой блог entery.

Может быть, лучше использовать Apache Hadoop и потоковую передачу, потому что Apache Hadoop активно разрабатывается и поддерживается такими крупными гигантами индустрии, как Yahoo и Facebook. Так что он может делать то, что вы ожидаете.

Если вам нужно решение в .NET, проверьте реализацию Myspace @ MySpace Qizmt - MySpace & # 8217; Каркас открытого кода Mapreduce

Microsoft находится в процессе развертывания HDInsight , который объявлен как их & Quot; 100% совместимое с Apache распределение Hadoop. & Quot;

Он доступен как на Windows Server, так и в качестве службы Windows Azure.

Теперь вы можете использовать Hadoop напрямую из .NET. Для этого Microsoft выпустила SDK.

https://hadoopsdk.codeplex.com/

Конечно, это означает использование сети Hadoop на основе Java. Но имеет ли значение, если сервер работает в Java? Я уверен, что кто-то может попытаться перенести его, но я не думаю, что это было бы хорошей идеей, поскольку корпорации уже поддерживают версию Java, и я не думаю, что порт .NET получит такое же внимание.

Посмотрите:

http://www.windowsazure.com/en-us/services/hdinsight /

Это реализация Hadoop для Azure, и вы можете использовать .NET для доступа к ней.

Внутренне Microsoft использует Cosmos. Это сделано доступным за пределами Microsoft через Azure. Он называется Azure Data Lake Analytics и хранилище озера данных Azure . Аналитика Azure Data Lake - это своего рода Yarn как услуга, а хранилище Azure Data Lake Store WebHDFS - как услуга. Первая версия Azure Data Lake Analytics поддерживает только U-SQL язык, основанный на Transact-SQL + C #.

Есть довольно симпатичная реализация MapReduce для .NET по адресу: http://mapsharp.codeplex.com/

dryad / linq производится и скоро будет выпущен: http: / /blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx использовать совместно с Microsoft HPC для создания мощного кластерного решения для запроса неструктурированных данных

Как уже упоминали другие, DryadLINQ - это среда программирования, которая позволяет разработчикам писать запросы LINQ и выполнять их в кластере, аналогично MapReduce. Проект DryadLINQ недавно был выпущен под лицензией Apache на GitHub , и в него включена поддержка работы на Кластеры YARN (включая кластеры Azure HDInsight).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top