Existe um .NET equivalente ao Apache Hadoop? [fechadas]


98

Portanto, tenho observado o Hadoop com grande interesse e, para ser honesto, estou fascinado, as coisas não ficam muito mais legais.

Meu único problema menor é que sou um desenvolvedor C # e ele está em Java.

Não é que eu não entenda o Java tanto quanto estou procurando o projeto Hadoop.net ou NHadoop ou .NET que adota a abordagem Google MapReduce . Alguém conhece algum?

Respostas:


57

Você já viu como usar o streaming do Hadoop?

Eu uso em python o tempo todo :-).

Estou começando a ver que a abordagem heterogênea geralmente é a melhor e parece que outras pessoas estão fazendo o mesmo.

Se você olhar para projetos como buffers de protocolo ou economia do Facebook, verá que às vezes é melhor usar um aplicativo escrito em outro idioma e construir a cola no idioma de sua preferência.


2
Isso não significa tecnicamente ter Hadoop em C #, o streaming desacopla os processos e os dados são passados ​​como strings, o que não poderia ser tão eficiente.
— Felice Pollano

13

7
A Microsoft cancelou o Dryad e decidiu ficar com o Hadoop
— Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz: você tem uma referência a essa declaração da Microsoft?
— Abel

4
consulte blogs.technet.com/b/windowshpc/archive/2011/11/11/… - "Como parte deste lançamento, também atualizamos a versão de visualização do LINQ para HPC, no entanto, esta será a visualização final e nós não planejamos avançar com um lançamento de produção. De acordo com nosso anúncio em outubro na conferência PASS, concentraremos nossos esforços em trazer o Apache Hadoop para Windows Server e Windows Azure ... "
— Arnon Rotem-Gal-Oz,

13

Recentemente, o MySpace lançou seu framework .NET MapReduce, Qizmt , como Open Source, então este também é um candidato potencial neste espaço.


2
A licença deles é GPL; (seria ótimo se eles tivessem escolhido algo menos restritivo ...
— IgorK

3
É realmente improvável que a GPL vá atrapalhar neste caso. Contanto que você não distribua suas modificações para a fonte (se tiver feito alguma) fora de sua organização, não será necessário liberar nenhum de seu código.
— foxxtrot de

Distribuímos nosso produto de código fechado (como uma empresa de produtos). E se tentássemos confiar em um componente de software GPL, então automaticamente precisaríamos distribuir nossas fontes também, não é LGPL onde incluir uma biblioteca em um projeto de código fechado é OK :(
— IgorK

Completamente justo. Só acho que o uso de uma estrutura Map-Reduce pela maioria das pessoas não terá essa limitação. Dito isso, não entendo o caso de negócios do MySpace para lançar isso como GPL, até onde posso dizer que eles não estão licenciando separadamente.
— foxxtrot de

Eu também não entendo! Se alguém quisesse criar um 'assassino do MySpace', provavelmente ficaria satisfeito usando-o internamente (sem redistribuição de binário ou fonte). Eu acho que usar AGPL (Affero GPL) seria mais apropriado para consertar uma brecha com serviços públicos da web usando-o e não distribuindo qualquer fonte ... Triste e estranho: /
— IgorK

10

Eu respondi sua pergunta na minha pergunta aqui

Para dizer aqui na fonte:

A Microsoft abandonou sua alternativa ( Dryad ) em favor do Hadoop. No próximo ano, eles lançarão o MS SQL Server 2012 com integração Hadoop. O suporte do Azure e Windows Server está sendo desenvolvido enquanto falamos.

Estará disponível no primeiro semestre de 2012.

Hadoop é a plataforma BigData # 1 e terá suporte de código aberto e de código proprietário (Java, .Net, Python, ...) até mesmo a Oracle está adotando.

Se você estava desenvolvendo algo, deve esperar se estiver na plataforma .Net.

Mais informações sobre o que é possível estarão disponíveis aqui


5

Eu diria que DryadLinq é a coisa mais próxima que nós, gente do .NET, temos do Hadoop. Mas depende para que você deseja usar o hadoop. Se você está procurando um sistema de arquivo distribuído de manutenção automática (DFS) otimizado , o DryadLINQ não é o que você está procurando. Tem um análogo ao DFS, mas você tem que construir manualmente as partições e distribuir cada partição.

Dito isso, se é o aspecto de execução distribuída do Hadoop que você está procurando, o DryadLINQ é realmente maravilhoso (e não, não sou afiliado ao MS). Contanto que você tenha uma configuração de cluster Microsoft HPC, começar com o DryadLINQ é realmente fácil.

O código que você escreve é, na verdade, apenas código LINQ direto, exceto que, em vez de executar o LINQ, IEnumerable<T>você precisa executá-lo PartitionedTable<T>(a estrutura de dados distribuída de auto-construção).

O que tem sido realmente legal sobre o DryadLINQ é o tempo de resposta rápido (tente, teste, ajuste, repita) ao desenvolver algoritmos. Basta escrever o código LINQ para fazer seus cálculos e o DryadLINQ cuidará de toda a parte de execução distribuída. É o análogo mais natural que encontrei que torna a escrita de código para processamento distribuído exatamente como escrever código para processamento de processo único.


4

Você pode olhar para algo como RavenDb; ele fornece um suporte muito decente para MapReduce para um tamanho de dados bastante grande. como é construído em .Net, uma API de cliente LINQ adequada está disponível.

http://ravendb.net/

Para começar, você pode ler meu blog .



2

A Microsoft está em processo de implantação do HDInsight , que é classificado como sua "distribuição Hadoop 100% compatível com Apache".

Ele está disponível no Windows Server e como um serviço do Windows Azure.


1
HDInsight é a distribuição da Hortonworks. Outros fornecedores importantes também estão trabalhando com a Microsoft para oferecer suas distribuições no Azure. Pertencente à questão: existem interfaces .NET para HDInsight, mas o HDInsight em si não é .NET
— ashtonium


1

Agora você pode usar o Hadoop diretamente do .NET. A Microsoft lançou um SDK para fazer isso.

https://hadoopsdk.codeplex.com/

Claro, isso significa usar a rede Hadoop baseada em java. Mas faz diferença se o servidor está rodando em java? Tenho certeza de que alguém pode tentar portá-lo, mas não acho que seria uma boa ideia, pois as empresas já estão apoiando a versão java e não acho que a porta .NET receberá a mesma atenção.



1

Internamente, a Microsoft tem usado o Cosmos. Isso foi disponibilizado fora da Microsoft por meio do Azure. É denominado Azure Data Lake Analytics e Azure Data Lake Store . A análise do Azure Data Lake é uma espécie de Yarn como serviço e WebHDFS do Azure Data Lake Store como serviço. A primeira versão do Azure Data Lake Analytics hospeda apenas U-SQL, uma linguagem baseada em Transact-SQL + C #.



0

dryad / linq está sendo produzido e será lançado em breve: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx use em conjunto com Microsoft HPC para uma solução poderosa baseada em cluster para consultar dados não estruturados


/ será lançado em breve / não será, veja as respostas acima
— om-nom-nom

1
Suspect Dryad e HDInsight estão em conflito um com o outro. Continue ouvindo que a Microsoft deixará o Dryad para o HDInsight
— Swab.Jat

0

Como outros mencionaram, DryadLINQ é uma estrutura de programação que permite aos desenvolvedores escrever consultas LINQ e executá-las em um cluster, de maneira semelhante ao MapReduce. O projeto DryadLINQ foi recentemente lançado sob a licença Apache no GitHub e inclui suporte para execução em clusters YARN (incluindo clusters Azure HDInsight).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.