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.