Copiado!

Análise de dados para desenvolvedores



Este é o sétimo, e último, em uma série de shows com oradores da conferência VSLive, que foi realizada em Redmond, em agosto. Neste episódio, Robert é acompanhado por Andrew Brust para uma discussão sobre a análise dos dados. Embora a maioria dos desenvolvedores têm uma interação com os dados, eles costumam parar na coleta e manutenção. Andrew explica por que é imperativo que os desenvolvedores também deve saber como visualizar dados e derivar interpretações a partir dele.

NEW JAVASCRIPT OBFUSCATOR AFIRMA SER O MAIS DIFÍCIL DE DEOBFUSCATE


Javascript2img.com lançou o que afirma ser o melhor dos principais obfuscators Javascript. Através de uma forma de mascaramento que torna o código fonte ininteligível para a olho nu, tais obfuscators levantar a barreira para inspeção indesejável de Javascript que é outra forma detectável através da visualização de arquivos HTML e .js. Embora seja quase infalível, obfuscators pode ser útil em situações em que fácil inspeção do código fonte pode levar à exposição de informações sensíveis que os desenvolvedores preferem ser menos visível (como chaves de API e segredos de aplicação).
É importante notar que a "segurança por obscuridade" é defeatable e não para ser invocada como a única abordagem para garantir ativos digitais, tais como APIs ou qualquer código-fonte que chama-los. Mais ao ponto, incluindo os segredos da API, como credenciais de login ou chaves de API em JavaScript do lado cliente é altamente desaconselhado. Enquanto obfuscators ofuscar o próprio código-fonte-Javascript, quaisquer dados (dados de aplicativos, chaves de API, as credenciais de login, etc.) que o código-fonte está passando do lado do cliente para o lado do servidor deve ser deobfuscated antes de ser enviado em pedir para o endpoint API do lado do servidor para desserializar corretamente os dados. Mesmo quando os dados são criptografados, é detectável como explicamos em  como os hackers crack APIs supostamente seguros e privados .
Mas há casos em que essas credenciais não são tão sensíveis como com outros onde a ofuscador Javascript viria a calhar. Já para não falar ofuscando server-side Javascript (node.js) como uma medida adicional de segurança para proteger o código fonte proprietário. Em outras palavras, há um tempo e um lugar para a obscuridade entre as muitas camadas de segurança que somam ativos digitais bem protegidos. Considerando obscuridade não e muitas vezes pode não podem deter o mais determinado dos hackers, que levanta a barreira de hackers casuais que preferem aproveitar as metas mais suaves. Dependendo de suas respectivas agendas e intenções, esses hackers podem causar danos igualmente perturbadora quanto o mais determinado hacker. 
No caso de Javascript2img.com, o processo é relativamente simples. Leve o Javascript código que você quer ofuscar, cole-o na forma de ofuscação em Javascript2img.com, clique no botão Obfuscate e Javascript2img.com retorna um pedaço de código que, se salva em um arquivo PNG, produziria uma imagem PNG legítimo ( Javascript2img.com mesmo exibe esta imagem para você). Mas, em vez de salvar o código em um arquivo PNG, você simplesmente substituí-lo em seu código fonte para o Javascript real que você ofuscado. Qualquer Javascript intérprete ainda vai saber o que fazer com ele. 
De acordo com Sergi Sole, co-fundador da sede em Barcelona Rede Mídia Local e um dos autores do Obfuscator, Javascript2img.com faz um trabalho melhor de ofuscar Javascript do que outros obfuscators líderes. Sole disse  WD2  "[Ele] é o mesmo que http://javascriptobfuscator.com/ , http://www.jsobfuscate.com , etc., mas usa um algoritmo complexo e mais difícil. Temos um desafio em nosso site para tentar deobfuscate para um pequeno pedaço de código ofuscado pelos nossos algoritmos e ninguém fez isso. " Dirigindo-se a falibilidade da obfuscators, Sole disse: "Não é impossível, é claro. Mas é um pouco difícil de fazer."
Em termos de como ele é feito, Sole disse: "Nós injetar o código dentro de um arquivo PNG usando seis algoritmos distintos. Então, se você descobrir como deobfuscate um desses, você ainda tem que descobrir os outros cinco."
Sole disse  WD2  que Javascript2img.com foi desenvolvido basicamente se coçar.Era necessário algo assim para seus outros projetos. Agora que o site está instalado, ele pretende rentabilizá-lo com anúncios. Enquanto isso, uma questão importante a ser respondida quando se trata de qualquer ofuscador online é ou não do operador do site é manter uma cópia do código ofuscado. Quando perguntado sobre a confiabilidade, Sole respondeu que "nenhuma informação é retida [por nós], nenhuma fonte [code], não há [endereços IP], nada." Mesmo assim, você ainda tem que levar sua palavra para ela.
Uma API para um ofuscador como este pode vir a calhar. Por exemplo, não é difícil imaginar as chamadas de API Obfuscator sendo construído em um fluxo de trabalho app dev Javascript.Mas Sole não pensa infra-estrutura da Javascript2img.com está pronto para a carga potencial que pode ser criado por um API. Assim, por agora, é uma operação manual (embora isso não iria parar a um terceiro a construção de uma API baseada em raspador).

Workestra transforma seu celular Push Notifications em tarefas organizadas


Um novo aplicativo chamado Workestra para iOS, Android e Windows Phone transforma suas notificações push a partir de vários aplicativos e serviços em tarefas que você pode "soneca" ou Marcar como feita. A idéia é oferecer uma ferramenta mais caixa de entrada, como para gerir as várias atualizações de seus aplicativos, permitindo que você controle melhor quais os tipos de notificações que você quer ver, e quais as contas que você quiser vê-los a partir de, entre outras coisas.
De acordo com  Workestra fundador Omid Borjian , uma das maiores vantagens de se utilizar este serviço é o seu suporte para múltiplas contas, eo controle que oferece mais atualizações dessas contas.
Por exemplo, se você está gerenciando várias contas de mídia social para a sua organização ou clientes, muitas vezes você tem que entrar e sair de suas contas diferentes em cada app, a fim de ver todas as atualizações.
iphone2Além disso, quando você tocar na notificação de envio enviada para o seu telefone para ver a atualização, a própria notificação desaparece.Workestra vez permite manter o controle dessas notificações de forma mais centralizada, organizada onde você também pode controlar o tipo de notificações aparecem em primeiro lugar.
Por exemplo, você não pode se preocupar sobre a obtenção de atualizações sobre os aniversários dos seus amigos no Facebook, mas você pode querer ser notificado sobre pedidos de amizade.Ou, para algumas contas relacionadas com o trabalho, você pode apenas querer ser notificado quando é necessária uma ação de sua parte.
Mais longo prazo, maior objetivo da Workestra é apoiar aplicações corporativas e serviços que não podem mesmo estar disponíveis em um formato móvel nativo, ou não oferecem suas próprias APIs.
"Muitas empresas têm todos esses aplicativos lá fora, que ninguém quer para entrar em", explica Borjian. "E já estamos atolados com todos esses aplicativos que temos em nossos telefones.Para que você obtenha todas essas notificações, e é muito difícil controlá-lo hoje em dia, porque você começa notificações sobre o que você não precisa nem se preocupam. "
Este problema levou-o a pensar em uma maneira diferente de gerenciar notificações.
Com Workestra, os usuários podem escolher actualmente de cerca de 50 diferentes "canais" (pense: Instagram, Twitter, Slack, Facebook, MailChimp, Salesforce, etc.), bem como que tipode notificações que eles querem ver a partir desse canal. Estes são então enviados para o app Workestra, onde eles podem ser tratados como tarefas marcadas como feitas ou guardar para mais tarde.
android1Você também pode ativar as notificações por completo, conforme necessário - como não se você está determinado a trabalhar durante suas férias, por exemplo.
Além disso, através da API Workestra , os desenvolvedores podem enviar qualquer coisa para Workestra, incluindo atualizações de serviços que não foram projetadas para a nuvem, ou para plataformas móveis. Atualmente, os desenvolvedores podem escolher a partir de Java, Python, PHP, Ruby, Node.js e bibliotecas de terceiros .Net para fazer essa integração possível.
O aplicativo é direcionado principalmente para usuários corporativos, e, em uma versão futura, irá apoiar a capacidade de TI para gerenciar as notificações de um grupo ou grupos de pessoas.Isso também será útil para as empresas onde se mantêm uma conta de terceiros (por exemplo, Twitter, LinkedIn) sem dar senhas para toda a equipe, mas ainda querem os membros da equipe para saber quando a conta recebeu uma atualização.
Também em breve, os usuários também estará prestes a realizar ações relacionadas ao tipo específico de notificação que receber diretamente no app Workestra, também.
Borjian, que atualmente trabalha como designer / interação UX com ServiceNow empresa nuvem, foi bootstrapping Workestra no lado desde março passado. Até o momento, o aplicativo está em teste beta privado, com apenas 100 usuários até agora desde o primeiro lançado no Android um mês e meio atrás. Hoje, o app também é suportado no iOS, Windows Phone e web.
O modelo de negócio para a empresa consiste em oferecer um certo número de streams gratuitos e notificações por mês gratuitamente, em seguida, pedindo aos usuários que pagar para atualizar para mais. Preço ainda está em andamento, mas contas gratuitas receberá 3 córregos e 500 notificações por mês para começar.
Agora, o plano é fazer com que o aplicativo disponível para o público no prazo de uma semana. Os usuários interessados ​​podem se inscrever aqui para um convite.
Web3

Java e JavaScript regra, mas o uso de foguetes linguagem Swift da Apple

 Resumo: Apenas alguns meses depois que a Apple lançou Swift para iOS, a linguagem tornou-se um dos mais populares para os desenvolvedores.
Uso dos desenvolvedores da linguagem de programação Swift, da Apple, projetado para criar aplicativos para iOS e OS X, tem subido desde o seu lançamento em setembro, de acordo com um novo relatório.
lang-rank-plot-q1151.png
Image: RedMonk
Apple só lançou a versão 1.0 do Swift em setembro , mas a substituição de Objective-C já é a 22ª língua mais popular, até 46 pontos de há três meses, de acordo com a empresa de análise de RedMonk rankings de idioma para o quarto trimestre de 2014 .
Crescimento como que é "sem precedentes" em quatro anos da empresa de classificação linguagens de programação, de acordo com o analista RedMonk Stephen O'Grady.
"Quando vemos um crescimento dramático de uma língua que normalmente saltou em algum lugar entre cinco e 10 pontos, e quanto mais próximo da linguagem chega ao Top 20 ou dentro dela, o crescimento é mais difícil de encontrar", observou ele.
Os rankings são baseados em uma correlação de discussões sobre linguagem Stack Overflow e uso da linguagem no GitHub.
Embora possa ser sem precedentes, subida rápida de Swift pode não ser surpreendente, dado selo de aprovação para ele como o idioma iOS do futuro e do fato de que tem da Apple nove milhões de desenvolvedores registrados que querem seus produtos para alcançar base de usuários da Apple iOS .
Ainda assim, a Swift continua bem atrás das principais línguas utilizadas por desenvolvedores Java - 20 anos de idade e JavaScript.
As duas línguas são seguidos por PHP, Python, C #, C ++, Ruby, CSS, C e Objective-C, que compõem o top 10. O top 20 também incluem Perl, Shell, R, Scala, Haskell, Matlab, Go, Visual Basic, Clojure e Groovy.
"A conclusão mais importante é que a linguagem, freqüentemente, para morrer e a linguagem às vezes apontado como o futuro têm mostrado crescimento sustentado e de tração e manter-se, de acordo com esta medida, as ofertas mais populares," O'Grady observou, referindo-se ao debate sobre a morte de 20 ano de idade Java em detrimento das línguas mais recentes para desenvolvimento web, como PHP e Ruby on Rails.
Vá , uma linguagem desenvolvida dentro do Google, subiu acima de Visual Basic, Clojure, Groovy e CoffeeScript para tirar o 17º lugar, com o apoio última língua que parece estar se desgastando, de acordo com O'Grady.
Rust, uma linguagem desenvolvida pelo projeto Mozilla Research, é só apertar alpha versão 1.0, e pulou para oito pontos a 50 linguagem mais popular.
Leia mais sobre Swift
  • Nova linguagem de desenvolvimento Swift da Apple destaca pior lado da empresa
  • A Apple aceita aplicativos Swift para linguagem de programação atinge status de GM
  • Desenvolvedores Mac meditando sobre nova linguagem Swift da Apple

Sequential Access arquivo usando Java

Ao falar sobre a retenção permanente de dados, um arquivo de texto comum é a unidade básica de armazenamento de dados, além de usar banco de dados complicada e outros repositórios. Variáveis ​​e matrizes que utilizamos para o armazenamento em código são temporários; eles são armazenados na área de armazenamento primário (tais como RAM) e viver até que o programa termina oucoletor de lixo (*) varre a memória limpa. Assim, a única maneira de manter os dados permanentemente é armazená-los de alguma forma, os dispositivos de 

Bytes e caráter Streams


Este fluxo de arquivo pode ser utilizado tanto para a entrada de dados, bem como de saída, para e a partir de um ficheiro ou, como uma sequência de caracteres ou bytes. Streams com base em bytes são usados ​​principalmente para armazenar / manipulação de dados em formato binário, enquanto um baseados em caracteres lojas de transmissão / manipula dados como uma sequência de caracteres.Por exemplo, se queremos armazenar, digamos 3, seria armazenado no formato binário do valor numérico 3, ou 011 (3 em binário) em fluxo baseado byte. Se o valor viesse a ser armazenado no fluxo baseado em caracteres seriam armazenados no formato binário do carácter 3 como 00000000 00110011 (= 3 51 é o conjunto de caracteres a partir de Unicode; de ​​modo semelhante, 52 de identificação 4, 5 é 53 e assim por diante). À primeira vista, pode parecer exigente, mas a distinção é importante. O tratamento caráter de um fluxo de dados é usado para criar arquivos de texto. Esses arquivos de texto pode ser lido por qualquer editor de texto. Os ficheiros binários produziram a partir de um fluxo binário requerem um programa especial que converte os dados para um formato legível. O seu uso específico é, principalmente, para interagir com o sistema e para servir finalidades especiais.Por exemplo, todos os arquivos executáveis ​​encontrados no sistema são nada além de arquivos binários.

Arquivo Overview em Java

A classe java.io.File não fornece quaisquer capacidades de processamento de arquivos, e ainda é útil para recuperar informações sobre arquivos e diretórios de armazenamento secundário. Este objeto de classe vem a calhar em várias ocasiões, principalmente ao lidar com arquivos em programação Java. Para apreciar a sua utilidade, vamos tentar um programa simples que funciona como o mínimo ls comando no Linux. Consulte o Javadoc para compreender as diversas funções fornecidas pelo arquivo de classe.

Trabalhar com pesquisa e classificação APIs em Java

Apesar de C / C ++ fornece as ferramentas e apoio para fazer um módulo tão eficiente quanto ele pode ser, literalmente Java fornece algumas das freqüentemente exigida: eficiente, pronto para usar módulos na forma de uma estrutura de coleta. Estes módulos não só tornar a vida de um programador fácil, mas também poupa o tempo valioso de reescrever algoritmos comuns e ajustando-os para a eficiência ao longo do tempo. Desenvolvedores da API Coleção de Java afinado-los em nome de todos e trouxe um senso de unidade com as APIs do núcleo de Java. O artigo procura explorar alguns aspectos.

Um algoritmo de classificação organiza os elementos de uma lista em uma ordem particular. Os elementos da lista deve implementar a Comparável interface e a ordem é determinada pela compareTo () método chamado como um método de comparação naturais , declarada no Comparável interface. No entanto, nós sempre pode especificar uma ordenação alternativa dos elementos com a ajuda do Comparador objeto passado como um argumento para o tipo de método. Por exemplo, se queremos classificar o seguinte:

Big Data Tool: Map-Reduce

Visão global

No último par de artigos , eu discuti Hadoop / Big Data e seus benefícios . Sabemos como Big Data está evoluindo e do ecossistema Hadoop pode ser útil para fazer análises sobre uma enorme quantidade de dados / meias / estruturados un.

Vamos discutir várias ferramentas que são os principais drivers para alcançar o objetivo, a análise de dados média em Big Data. Depois de ler este artigo, você vai conhecer os caminhos fundamentais para usar algumas das ferramentas de Big Data importantes que pertencem a diferentes comunidades de desenvolvedores.

Ferramentas Big Data / Hadoop

No mundo Big Data dentro do ecossistema Hadoop, existem muitas ferramentas disponíveis para processar os dados constantes no HDFS. Tal como acontece com o framework Hadoop, essas ferramentas também são parte de código aberto como o Hive, Pig, escrevendo programa Map-Reduce usando Java, HBase, Phoenix, e muitos mais. Todas estas ferramentas cobrir diferentes partes da comunidade de desenvolvedores; por exemplo: os desenvolvedores Java, SQL programadores ou programadores Non Jan & SQL e assim por diante.

No último artigo, discutimos várias ferramentas do ecossistema Hadoop. Nesta série de artigos vamos discutir três ferramentas importantes: Escrevendo Map-Reduce em Java, Hive, e Porco. Essas três ferramentas pertencem a diferentes pilhas de tecnologia:
  • Programador Java / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados através do desenvolvimento de Map-Reduce programas em Java.
  • SQL Programador / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados usando HIVE-QL Script e outras Linguagens De Consulta Estruturada.
  • Não JAVA ou SQL Programador / Desenvolvedor: Pessoas whobelong a esta tecnologia pode processar os dados usando um script PIG.
Essas três ferramentas pertencem a diferentes comunidades de desenvolvedores que ampliam a oportunidade de a maior parte da comunidade de desenvolvedores para alavancar o framework Hadoop para processamento de dados no mundo Big Data.

Compreender o Framework Map-Reduce

Map-Reduce, ou MR, é um framework escrito em Java para resolver um problema que será considerado como um trabalho no ambiente Hadoop. Há outros componentes envolvidos para executar um programa de MR e dão os resultados desejados.
Anatomia de MR ou do trabalho da MR programa: quadro MR definiu de trackers JobTracker & TaskTracker que ajudam a executar trabalhos de RM em todos os nós de cluster do Hadoop disponíveis separadamente, acompanhar o processamento e combinar a saída de trabalhos de RM para produzir os resultados desejados.


Processamento de XML em Java EE 7

XML é uma metalinguagem, uma diretriz para estruturar os dados em forma de texto sem formatação. A unanimidade da sua aceitabilidade é devido à sua estrutura de formulação simplista, e é abraçada por muitas de linguagens de programação, especialmente para mensagens aplicativo corporativo ou comunicação B2B. Java não é excepção. Componentes Java empresariais podem ser implantados, embora opcionalmente, com descritores XML simples. A principal vantagem é que, dados em XML pode ser utilizado pelo utilizador final sem investigar o programa que a produziu. No entanto, a comunicação XML 

Especificação XML


O ecossistema XML de Java fornece duas especificações - JAXP (JSR 206) e JAXB (JSR 222). JAXP (Java API para analisar XML) é uma parte da plataforma Java SE; ele fornece vários API para analisar documentos XML usando DOM (Document Object Model), SAX (Simple API for XML) e XSLT (Extensible Stylesheet Language Transformations) analisadores. O principal ponto de observação de JAXP é a sua flexibilidade e capacidade de manipular documentos XML em um nível muito baixo.JAXB (Java Architecture for XML Binding) é sim uma especificação de ligação facilitar a reunião e unmarshalling de documentos XML em um conjunto de POJO com a ajuda de várias APIs e anotações. JAXB está intimamente integrado com serviços JAX-RS web e mais adequado no desenvolvimento da empresa. Processamento XML através JAXB é comparativamente mais rápido do que JAXP.

Sujar as mãos

O projeto vai seguir os seguintes princípios.
  • Modelos (JPA): as classes do modelo será o único responsável por objeto persistente, como já vimos, uma representação de objeto da tabela de banco de dados. EJB vai falar com o banco de dados com a ajuda deste objetos. Há um provedor de persistência (aqui, EclipseLink) que fornece um gerente ( EntityManager ) para mediar a persistência de objeto entre o banco de dados e do EJB.
  • Lógica de Negócios (EJB): Sempre estritamente aderente ao negócio, EJB irá fornecer a lógica interna do que para se comunicar a partir do aplicativo.
  • Controllers (JSF): Os apertos de mão controlador com EJB para criar o terreno para a vista.
  • Visualizações (Primefaces): compreende todos os componentes visuais de doces processados ​​no navegador através XHTML
Nota: EclipseLink é o open source Eclipse Project Services Persistência da Eclipse Foundation . O software fornece uma estrutura extensível que permite que os desenvolvedores Java para interagir com vários serviços de dados, incluindo bancos de dados, serviços web, mapeamento XML Object (OXM) e Sistemas de Informação Empresarial (EIS): trecho da Wikipedia .

Big Data Tool: Map-Reduce

Visão global

No último par de artigos , eu discuti Hadoop / Big Data e seus benefícios .Sabemos como Big Data está evoluindo e do ecossistema Hadoop pode ser útil para fazer análises sobre uma enorme quantidade de dados / meias / estruturados un.
Vamos discutir várias ferramentas que são os principais drivers para alcançar o objetivo, a análise de dados média em Big Data. Depois de ler este artigo, você vai conhecer os caminhos fundamentais para usar algumas das ferramentas de Big Data importantes que pertencem a diferentes comunidades de desenvolvedores.

Ferramentas Big Data / Hadoop

No mundo Big Data dentro do ecossistema Hadoop, existem muitas ferramentas disponíveis para processar os dados constantes no HDFS. Tal como acontece com o framework Hadoop, essas ferramentas também são parte de código aberto como o Hive, Pig, escrevendo programa Map-Reduce usando Java, HBase, Phoenix, e muitos mais. Todas estas ferramentas cobrir diferentes partes da comunidade de desenvolvedores; por exemplo: os desenvolvedores Java, SQL programadores ou programadores Non Jan & SQL e assim por diante.
No último artigo, discutimos várias ferramentas do ecossistema Hadoop. Nesta série de artigos vamos discutir três ferramentas importantes: Escrevendo Map-Reduce em Java, Hive, e Porco. Essas três ferramentas pertencem a diferentes pilhas de tecnologia:
  • Programador Java / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados através do desenvolvimento de Map-Reduce programas em Java.
  • SQL Programador / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados usando HIVE-QL Script e outras Linguagens De Consulta Estruturada.
  • Não JAVA ou SQL Programador / Desenvolvedor: Pessoas whobelong a esta tecnologia pode processar os dados usando um script PIG.
Essas três ferramentas pertencem a diferentes comunidades de desenvolvedores que ampliam a oportunidade de a maior parte da comunidade de desenvolvedores para alavancar o framework Hadoop para processamento de dados no mundo Big Data.

Compreender o Framework Map-Reduce

Map-Reduce, ou MR, é um framework escrito em Java para resolver um problema que será considerado como um trabalho no ambiente Hadoop. Há outros componentes envolvidos para executar um programa de MR e dão os resultados desejados.
Anatomia de MR ou do trabalho da MR programa: quadro MR definiu de trackers JobTracker & TaskTracker que ajudam a executar trabalhos de RM em todos os nós de cluster do Hadoop disponíveis separadamente, acompanhar o processamento e combinar a saída de trabalhos de RM para produzir os resultados desejados.BigData01
Figura 1 : O fluxo de execução Job MR
Aqui é o entendimento passo-a-passo do MR processamento do trabalho e JobTracker & TaskTracker responsabilidades:
Passo 1: O cliente envia um trabalho MR.
Passo 2: JobTracker recebe o trabalho de MR a partir do cliente e inclui as seguintes etapas:
Passo 2.1: JobTracker atribui JobID e local de trabalho em uma fila interna.
Passo 2.2: O agendador de tarefas pega o trabalho de uma fila e inicializa-lo, criando um objeto encapsulado com suas tarefas e outras informações, tais como o progresso de cada tarefa.
Passo 2.3: JobTracker usa um algoritmo de programação interna que determina qual a tarefa do trabalho deve ser processado em primeiro lugar.
Passo 2.4: JobTracker atribui tarefas aos TaskTracker, que está pronto para disponível para executar a tarefa.
Passo 3: TaskTracker tem um número fixo de slots para o seu mapa e reduzir a tarefa. Por padrão, existem dois slots para mapeamento e dois slots para a redução de tarefas.
Passo 3.1: TaskTracker primeiras cópias do frasco do sistema de arquivos compartilhados no sistema de arquivos rastreador tarefa local.
Passo 3.2: TaskTracker cria um diretório de trabalho local para a tarefa e unjars o conteúdo.
Passo 3.3: TaskTracker cria uma instância de TaskRunner para executar cada tarefa. Para cada tarefa, TaskRunner usa uma nova JVM, de modo que o mapa definido pelo usuário e reduzir funções não afetam outras tarefas.
Passo 3.3.1: Limpe, A ação de limpeza compromete a tarefa em que a saída de tarefas deve ser escrito; em outras palavras, a localização do ficheiro.
Passo 3.3.2: ações de instalação. A ação de configuração envolve a inicialização do trabalho com alguns parâmetros.
Passo 3.3.3: Aciona a execução da tarefa.
Passo 3.3.4: TaskRunner envia cada estado da tarefa para TaskTracker enviando o seu estatuto de bandeira.
Passo 3.4: TaskTracker envia uma pulsação a cada cinco segundos para JobTracker insinuar o status de todas as tarefas que lhe são atribuídas.
Passo 4: Depois JobTracker receber o status final de todos os postos de trabalho TraskTracker, segue-se a seguinte seqüência:
Passo 4.1: JobTracker combina todas as atualizações recebidas de TaskTracker.
Passo 4.2: Internamente actualiza o estado de JobID e gera a saída.
Passo 4.3: Retorna o status do trabalho para o cliente MR quando se pinga JobTracker.
Passo 5: O cliente Job recebe seu status que está concluído e o estado é impressa no console, para ser visto pelo usuário.
O conjunto anterior de etapas é útil para compreender o fluxo end-to-end de um MR Job. Há muitas outras opções disponíveis para alterar a prioridade de execução e ranhuras que podem ser configurados em mapred-site.xml e muitos mais.

Problema Amostra

Hoje, vamos aprender a escrever um primeiro programa MR para a solução de um problema:
Problema: Descubra quantas pessoas pertencem a cada estado.
Para fins de exemplo, eu preparei um arquivo users.txt com cinco colunas. Segue-se a estrutura do arquivo com dados de amostra preenchido:
<ID do usuário>, <usuário>, <cidade>, <estado>, <país>
1, John, Montgomery, Alabama, EUA
2, David, Phoenix, Arizona, EUA
3, Sarah, Sacramento, Califórnia, EUA
4, Anoop, Montgomery, Alabama, EUA
5, Marinda, Phoenix, Arizona, EUA
6, Maria, Sacramento, Califórnia, EUA
7, Jony, Phoenix, Arizona, EUA
8, Wilson, Montgomery, Alabama, EUA
9, Jina, Lincoln, Nebraska, EUA
10, James, Columbus, Ohio, EUA

Pré-requisito para o Programa MR

Para resolver o problema de exemplo anterior, há certas coisas que devem estar disponíveis e configurado corretamente para obter o resultado desejado. Eu vou te mostrar o que as ferramentas devem ser instalados ea configuração necessárias que devem estar no local como um pré-requisito para começar a escrever o seu primeiro programa de MR.
Ferramentas:
  1. Eclipse IDE (Qualquer versão mais recente)
  2. Java 1.6 ou 1.6 +
  3. Hadoop 1.2.1
Configurações:
Você pode obter todos os arquivos de configuração necessários após extrair o jar presentes na pasta / conf Hadoop_1.2.1:
  1. mapred-site.xml
    BigData02
    Figura 2 : Conteúdo do mapred-site.xml
  2. hdfs-site.xml
    BigData03
    Figura 3 : Conteúdo do hdfs-site.xml
  3. núcleo-site.xml
    BigData04
    Figura 4 : Conteúdo do core-site.xml
  4. hadoop-env.sh
    BigData05
    Figura 5 : Índice de hadoop-env.sh
Você precisa seguir os próximos passos para confirmar que Hadoop instalado e todas as configurações são colocados corretamente:
Passo 1: Abra um prompt de comando e navegue pela <-path instalado> /hadoop-1.2.1 caminho.
Passo 2: Execute o ./bin/start-all.sh comando para iniciar componentes do Hadoop (HDFS e MapReduce).
Passo 3: Você pode validar que HDFS e MapReduce estão funcionando corretamente, utilizando as seguintes URLs em um navegador:
hdfs: // localhost: 50070 / dfshealth.jsp
hdfs: // localhost: 50030 / jobtracker.jsp
Passo 4: Você pode parar HDFS e MapReduce, executando o followingcommand:
<-Path instalado> /hadoop-1.2.1/.bin/stop-all.sh

Map-Reduce Programa

Assim que estiver pronto com os pré-requisitos, vamos começar a escrever o primeiro programa de MR para resolver o problema anterior. Este programa MR conteria três arquivos:
  1. Programa Motorista
  2. Folders Programa
  3. Reduzir o Programa
Vamos abrir Eclipse e siga estes passos para criar os programas necessários:
BigData06
Figura 6 : Criando os programas necessários
Passo 1: Criar um novo espaço de trabalho com o nome de "Hadoop"
Passo 2: Crie um novo projeto Java "MRProgram" em Eclipse usando o ambiente JAVA construída sobre Java 1.6 e acima.
Passo 3: incluir as bibliotecas dependentes Hadoop para o projeto "MRProgram".
Passo 4: Criar uma pasta de entrada no projeto "MRProgram" e criar users.txt com os dados especificados na seção intitulada "Problema de exemplo".
Passo 5: Abra um .classpath do projeto "MRProgram", e certifique-se que tem os seguintes dados:
BigData07
Figura 7 : Examinando o caminho de classe
Passo 6: Faça um programa de driver, seu principal arquivo, que atua como um trabalho para apresentar o Mapper e programas de redução. Por exemplo: UserDriver.java.
BigData08
Figura 8 : O arquivo UserDriver.java
Passo 7: Faça um programa Mapper. Ele lê arquivo linha por linha, analisa cada linha separada por uma " , "(vírgula), e em seguida, ele grava os dados na forma de um par de chaves e valor e torna disponível para o programa redutor. No nosso caso, Key será o nome do estado e valor será de toda a linha.
A Figura 9 é o programa UserMapper.java:
BigData09
Figura 9 : O programa UserMapper.java
BigData10
Figura 10 : O programa UserMapper.java, depois de ser executado
Passo 8: Escreva um programa redutor. Ele lê saída mapeador, e os processos de cada chave e valor de mapeador. No nosso caso, temos que contar quantos usuários são de cada estado.
A Figura 11 é o programa redutor:
BigData11
Figura 11 : O programa Redutor
Passo 9: Execute o programa UserDriver.java em Eclipse. Ele irá executar programas tanto o cartógrafo e redutor e cria e pasta de saída com dois seguintes arquivos:
_SUCCESS: não _SUCCESS não contém nada.
Parte-r-0000: Parte-r-0000 contém a saída desejada do Programa MR.
BigData12
Figura 12 : Demonstrando Part-r-0000
A saída precedente é o resultado desejado, o que dá estado de contagem usuário sábio.
O diretório de saída deve ser suprimida antes de iniciar UserDriver.Java porque o trabalho MR não substituirá o diretório de saída existente e dá uma exceção.

Resumo

Neste artigo, nós falamos sobre as ferramentas de Big Data que são úteis na análise de dados.Discutimos os fundamentos do framework Map-Reduce e MR processamento do trabalho. A disponibilidade de Map = Reduzir proporcionou uma imensa oportunidade para a comunidade de desenvolvedores Java para entrar na dados e análises mundo. Nós escreveu um programa MR amostra para resolver o problema de amostra para compreender o requisito de ponta a ponta para o Programa de MR e a sua execução passo-a-passo.
No próximo artigo desta série, vamos falar sobre Hive e Pig.

Referências