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?

danswain
fonte

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.

mastiga
fonte
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

Consulte http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx ou http://msdn.microsoft.com/en-us/library/dd179423.aspx


fonte
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.

foxxtrot
fonte
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

NicoJuicy
fonte
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.

Turbo
fonte
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 .

Ovais
fonte
2

Pode ser melhor usar o Apache Hadoop e streaming porque o Apache Hadoop está sendo desenvolvido e mantido ativamente por grandes gigantes da indústria como Yahoo e Facebook. Portanto, ele pode fazer o que você espera.

Se você precisa de uma solução em .NET, verifique a implementação do MySpace @ MySpace Qizmt - Open Source Mapreduce Framework do MySpace

Dileep Stanley
fonte
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.

Buggieboy
fonte
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.

Dreamwalker
fonte
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 #.

Benjguin
fonte
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

John
fonte
/ 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).

senhor
fonte