Thursday 16 November 2017

Cloudera Média Móvel


Eu tropecei sobre este artigo: que menciona como calcular média móvel usando Hadoop. Observe que todos os registros de uma chave devem ser classificados e, em seguida, reduzido. Agora suponha que os registros de uma determinada chave estão espalhados por todos os fragmentos do cluster Mongo. Em tal caso, seria possível calcular a média móvel entendo que Mongo faz o mapa reduzir em cada nó. O principal requisito para resolver este problema é certificar-se de que todas as emissões de um mapa sejam reduzidas em uma única fase de redução. Se for esse o caso, Mongo Mapa Reduzir nunca será capaz de resolver esses problemas. Existe algum mal-entendido básico Também, com bilhões de linhas e petabytes de dados, por que é que a fase Hadoop Reduzir a falha não cair fora da memória, uma vez que tem de lidar com pelo menos vários TBs de dados mapeados. Perguntou May 16 13 at 7:31 Você pode explicar por que Hadoop doesn39t falhar de memória para tal computação De minha compreensão, toda a redução acontecerá em um nó, onde todos os registros de uma chave será reduzida. Isso deve resultar em enorme sobrecarga de memória nesse nó, uma vez que TBs de dados precisa estar presente lá. Como o Hadoop lida com uma quantidade tão grande de dados ndash P. Prasad May 16 13 at 8:29 Acredito que, ao contrário do MongoDB, o hadoop, assim como o SQL ao processar uma grande associação, escreve as coisas no disco e só lê quando necessário com O sistema operacional usando swap como um titular de memória temporária para certas coisas provavelmente. MongoDB faz mais na memória RAM antes de escrever para o disco como tal ele irá facilmente resgatar ndash Sammaye May 16 13 às 8: 37Moving Médias - Simples e Exponencial Movendo Médias - Simples e Exponencial Introdução As médias móveis alisam os dados de preços para formar uma tendência seguinte indicador. Eles não prevêem a direção do preço, mas sim definir a direção atual com um atraso. As médias móveis são retardadas porque são baseadas em preços passados. Apesar deste atraso, as médias móveis ajudam a suavizar a ação dos preços e filtrar o ruído. Eles também formam os blocos de construção para muitos outros indicadores técnicos e sobreposições, como Bandas Bollinger. MACD eo Oscilador de McClellan. Os dois tipos mais populares de médias móveis são a Média Móvel Simples (SMA) e a Média Móvel Exponencial (EMA). Essas médias móveis podem ser usadas para identificar a direção da tendência ou definir níveis potenciais de suporte e resistência. Here039s um gráfico com um SMA e um EMA sobre ele: Simples Moving Average Cálculo Uma simples média móvel é formada por calcular o preço médio de um título sobre um determinado número de períodos. A maioria das médias móveis são baseadas em preços de fechamento. Uma média móvel simples de 5 dias é a soma de cinco dias dos preços de fechamento dividida por cinco. Como seu nome indica, uma média móvel é uma média que se move. Os dados antigos são eliminados à medida que novos dados são disponibilizados. Isso faz com que a média se mova ao longo da escala de tempo. Abaixo está um exemplo de uma média móvel de 5 dias evoluindo ao longo de três dias. O primeiro dia da média móvel cobre simplesmente os últimos cinco dias. O segundo dia da média móvel cai o primeiro ponto de dados (11) e adiciona o novo ponto de dados (16). O terceiro dia da média móvel continua caindo o primeiro ponto de dados (12) e adicionando o novo ponto de dados (17). No exemplo acima, os preços aumentam gradualmente de 11 para 17 ao longo de um total de sete dias. Observe que a média móvel também aumenta de 13 para 15 ao longo de um período de cálculo de três dias. Observe também que cada valor da média móvel está logo abaixo do último preço. Por exemplo, a média móvel para o dia um é igual a 13 eo último preço é 15. Os preços dos quatro dias anteriores eram mais baixos e isso faz com que a média móvel fique atrasada. Cálculo da média móvel exponencial As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. A ponderação aplicada ao preço mais recente depende do número de períodos na média móvel. Há três etapas para calcular uma média móvel exponencial. Primeiro, calcule a média móvel simples. Uma média móvel exponencial (EMA) tem que começar em algum lugar assim uma média móvel simples é usada como EMA do período anterior039s no primeiro cálculo. Em segundo lugar, calcular o multiplicador de ponderação. Em terceiro lugar, calcule a média móvel exponencial. A fórmula abaixo é para uma EMA de 10 dias. Uma média móvel exponencial de 10 períodos aplica uma ponderação de 18,18 ao preço mais recente. Um EMA de 10 períodos também pode ser chamado de EMA 18.18. Um EMA de 20 períodos aplica uma ponderação de 9,52 ao preço mais recente (2 (201) .0952). Observe que a ponderação para o período de tempo mais curto é mais do que a ponderação para o período de tempo mais longo. De fato, a ponderação cai pela metade cada vez que o período de média móvel dobra. Se você deseja uma porcentagem específica para uma EMA, use esta fórmula para convertê-la em períodos de tempo e insira esse valor como o parâmetro EMA039s: Abaixo está um exemplo de planilha de uma média móvel simples de 10 dias e um valor 10- Dia média móvel exponencial para a Intel. As médias móveis simples são diretas e exigem pouca explicação. A média de 10 dias simplesmente se move conforme novos preços se tornam disponíveis e os preços antigos caem. A média móvel exponencial começa com o valor da média móvel simples (22,22) no primeiro cálculo. Após o primeiro cálculo, a fórmula normal assume o controle. Como um EMA começa com uma média móvel simples, seu valor verdadeiro não será realizado até 20 ou mais períodos mais tarde. Em outras palavras, o valor na planilha do Excel pode diferir do valor do gráfico por causa do curto período de retorno. Esta planilha só remonta 30 períodos, o que significa que o efeito da média móvel simples teve 20 períodos para dissipar. StockCharts volta pelo menos 250 períodos (geralmente muito mais) para os seus cálculos para os efeitos da média móvel simples no primeiro cálculo totalmente dissipada. O fator de Lag Quanto maior a média móvel, mais o lag. Uma média móvel exponencial de 10 dias abraçará os preços muito de perto e virará logo após os preços virarem. Curtas médias móveis são como barcos de velocidade - ágeis e rápidos para mudar. Em contraste, uma média móvel de 100 dias contém muitos dados passados ​​que o desaceleram. Médias móveis mais longas são como petroleiros oceânicos - letárgicos e lentos para mudar. É preciso um movimento de preços maior e mais longo para uma média móvel de 100 dias para mudar de rumo. O gráfico acima mostra o SampP 500 ETF com uma EMA de 10 dias seguindo de perto os preços e uma moagem SMA de 100 dias mais alta. Mesmo com o declínio de janeiro-fevereiro, o SMA de 100 dias manteve o curso e não recusou. A SMA de 50 dias se encaixa entre as médias móveis de 10 e 100 dias quando se trata do fator de latência. Simples vs médias exponenciais Moving Embora existam diferenças claras entre médias móveis simples e médias móveis exponenciais, um não é necessariamente melhor do que o outro. As médias móveis exponenciais têm menos atraso e, portanto, são mais sensíveis aos preços recentes - e as recentes mudanças nos preços. As médias móveis exponenciais virarão antes de médias móveis simples. As médias móveis simples, por outro lado, representam uma verdadeira média de preços para todo o período de tempo. Como tal, as médias móveis simples podem ser mais adequadas para identificar níveis de suporte ou resistência. Preferência média móvel depende de objetivos, estilo analítico e horizonte de tempo. Chartists deve experimentar com ambos os tipos de médias móveis, bem como diferentes prazos para encontrar o melhor ajuste. O gráfico abaixo mostra a IBM com a SMA de 50 dias em vermelho ea EMA de 50 dias em verde. Ambos atingiram o pico no final de janeiro, mas o declínio no EMA foi mais nítida do que o declínio no SMA. A EMA apareceu em meados de fevereiro, mas a SMA continuou baixa até o final de março. Observe que a SMA apareceu mais de um mês após a EMA. Comprimentos e prazos A duração da média móvel depende dos objetivos analíticos. Curtas médias móveis (5-20 períodos) são mais adequados para as tendências de curto prazo e de negociação. Os cartistas interessados ​​em tendências de médio prazo optariam por médias móveis mais longas que poderiam estender 20-60 períodos. Investidores de longo prazo preferem médias móveis com 100 ou mais períodos. Alguns comprimentos de média móvel são mais populares do que outros. A média móvel de 200 dias é talvez a mais popular. Devido ao seu comprimento, esta é claramente uma média móvel a longo prazo. Em seguida, a média móvel de 50 dias é bastante popular para a tendência de médio prazo. Muitos chartists usam as médias móveis de 50 dias e de 200 dias junto. Curto prazo, uma média móvel de 10 dias foi bastante popular no passado porque era fácil de calcular. Um simplesmente adicionou os números e moveu o ponto decimal. Identificação de tendências Os mesmos sinais podem ser gerados usando médias móveis simples ou exponenciais. Como mencionado acima, a preferência depende de cada indivíduo. Esses exemplos abaixo usarão médias móveis simples e exponenciais. O termo média móvel se aplica a médias móveis simples e exponenciais. A direção da média móvel transmite informações importantes sobre os preços. Uma média móvel em ascensão mostra que os preços estão aumentando. Uma média móvel em queda indica que os preços, em média, estão caindo. A subida da média móvel a longo prazo reflecte uma tendência de alta a longo prazo. A queda da média móvel a longo prazo reflecte uma tendência de baixa a longo prazo. O gráfico acima mostra 3M (MMM) com uma média móvel exponencial de 150 dias. Este exemplo mostra quão bem as médias móveis funcionam quando a tendência é forte. A EMA de 150 dias recusou-se em novembro de 2007 e novamente em janeiro de 2008. Observe que foi necessário um declínio de 15 para reverter a direção dessa média móvel. Estes indicadores de atraso identificam inversões de tendência à medida que ocorrem (na melhor das hipóteses) ou depois de ocorrerem (na pior das hipóteses). MMM continuou menor em março de 2009 e, em seguida, subiu 40-50. Observe que a EMA de 150 dias não apareceu até depois desse aumento. Uma vez que o fez, no entanto, MMM continuou maior nos próximos 12 meses. As médias móveis trabalham brilhantemente em tendências fortes. Crossovers dobro Duas médias móveis podem ser usadas junto para gerar sinais do cruzamento. Na Análise Técnica dos Mercados Financeiros. John Murphy chama isso de método de cruzamento duplo. Os cruzamentos duplos envolvem uma média móvel relativamente curta e uma média móvel relativamente longa. Como com todas as médias móveis, o comprimento geral da média móvel define o tempo para o sistema. Um sistema usando um EMA de 5 dias e um EMA de 35 dias seria considerado de curto prazo. Um sistema usando uma SMA de 50 dias e uma SMA de 200 dias seria considerado de médio prazo, talvez até de longo prazo. Um crossover de alta ocorre quando a média móvel mais curta cruza acima da média móvel mais longa. Isso também é conhecido como uma cruz de ouro. Um crossover de baixa ocorre quando a média móvel mais curta cruza abaixo da média móvel mais longa. Isso é conhecido como uma cruz morta. Os crossovers médios móveis produzem sinais relativamente tardios. Afinal, o sistema emprega dois indicadores de atraso. Quanto mais longos os períodos de média móvel, maior o atraso nos sinais. Esses sinais funcionam muito bem quando uma boa tendência se apodera. No entanto, um sistema de crossover média móvel vai produzir lotes de whipsaws na ausência de uma forte tendência. Há também um método de cruzamento triplo que envolve três médias móveis. Novamente, um sinal é gerado quando a média móvel mais curta atravessa as duas médias móveis mais longas. Um simples sistema de crossover triplo pode envolver médias móveis de 5 dias, 10 dias e 20 dias. O gráfico acima mostra Home Depot (HD) com um EMA de 10 dias (linha pontilhada verde) e EMA de 50 dias (linha vermelha). A linha preta é o fechamento diário. Usando um crossover média móvel teria resultado em três whipsaws antes de pegar um bom comércio. O EMA de 10 dias quebrou abaixo do EMA de 50 dias em outubro atrasado (1), mas este não durou por muito tempo enquanto os 10 dias se moveram para trás acima em meados de novembro (2). Este cruzamento durou mais, mas o próximo cruzamento de baixa em janeiro (3) ocorreu perto dos níveis de preços de novembro, resultando em outro whipsaw. Esta cruz bearish não durou por muito tempo porque o EMA de 10 dias moveu para trás acima dos 50 dias alguns dias mais tarde (4). Depois de três sinais ruins, o quarto sinal prefigurou um forte movimento como o estoque avançou mais de 20. Existem dois takeaways aqui. Primeiramente, os crossovers são prone ao whipsaw. Um filtro de preço ou tempo pode ser aplicado para ajudar a evitar whipsaws. Os comerciantes podem exigir que o crossover durar 3 dias antes de agir ou exigir a EMA de 10 dias para mover acima abaixo da EMA de 50 dias por um determinado montante antes de agir. Em segundo lugar, MACD pode ser usado para identificar e quantificar esses cruzamentos. MACD (10,50,1) mostrará uma linha representando a diferença entre as duas médias móveis exponenciais. MACD torna-se positivo durante uma cruz dourada e negativo durante uma cruz morta. O Oscilador de Preço Percentual (PPO) pode ser usado da mesma forma para mostrar diferenças percentuais. Observe que o MACD eo PPO são baseados em médias móveis exponenciais e não se igualam a médias móveis simples. Este gráfico mostra Oracle (ORCL) com a EMA de 50 dias, EMA de 200 dias e MACD (50,200,1). Houve quatro cruzamentos de média móvel em um período de 2 12 anos. Os três primeiros resultaram em whipsaws ou maus negócios. Uma tendência sustentada começou com o quarto crossover como ORCL avançado para os 20s meados. Mais uma vez, os crossovers de média móvel funcionam muito bem quando a tendência é forte, mas produzem perdas na ausência de uma tendência. Crossovers de preço As médias móveis também podem ser usadas para gerar sinais com cruzamentos de preços simples. Um sinal de alta é gerado quando os preços se movem acima da média móvel. Um sinal de baixa é gerado quando os preços se movem abaixo da média móvel. Os crossovers do preço podem ser combinados para negociar dentro da tendência mais grande. A média móvel mais longa define o tom para a tendência maior e a média móvel mais curta é usada para gerar os sinais. Um olharia para cruzes de preço de alta somente quando os preços já estão acima da média móvel mais longa. Isso seria negociar em harmonia com a maior tendência. Por exemplo, se o preço estiver acima da média móvel de 200 dias, os chartistas só se concentrarão nos sinais quando o preço se mover acima da média móvel de 50 dias. Obviamente, um movimento abaixo da média móvel de 50 dias precederia tal sinal, mas tais cruzamentos de baixa seriam ignorados porque a maior tendência é para cima. Uma cruz bearish sugeriria simplesmente um pullback dentro de um uptrend mais grande. Um cruzamento acima da média móvel de 50 dias indicaria uma subida dos preços e continuação da maior tendência de alta. O gráfico a seguir mostra Emerson Electric (EMR) com a EMA de 50 dias e EMA de 200 dias. A ação moveu-se acima e manteve-se acima da média móvel de 200 dias em agosto. Houve mergulhos abaixo dos 50 dias EMA no início de novembro e novamente no início de fevereiro. Os preços recuaram rapidamente acima dos 50 dias EMA para fornecer sinais de alta (setas verdes) em harmonia com a maior tendência de alta. MACD (1,50,1) é mostrado na janela do indicador para confirmar cruzamentos de preços acima ou abaixo da EMA de 50 dias. O EMA de 1 dia é igual ao preço de fechamento. MACD (1,50,1) é positivo quando o fechamento está acima do EMA de 50 dias e negativo quando o fechamento está abaixo do EMA de 50 dias. Suporte e Resistência As médias móveis também podem atuar como suporte em uma tendência de alta e resistência em uma tendência de baixa. Uma tendência de alta de curto prazo pode encontrar apoio perto da média móvel simples de 20 dias, que também é usada em Bandas de Bollinger. Uma tendência de alta de longo prazo pode encontrar suporte perto da média móvel simples de 200 dias, que é a média móvel mais popular a longo prazo. Se fato, a média móvel de 200 dias pode oferecer suporte ou resistência simplesmente porque é tão amplamente utilizado. É quase como uma profecia auto-realizável. O gráfico acima mostra o NY Composite com a média móvel simples de 200 dias de meados de 2004 até o final de 2008. Os 200 dias de suporte fornecido várias vezes durante o avanço. Uma vez que a tendência revertida com uma ruptura de apoio superior dupla, a média móvel de 200 dias agiu como resistência em torno de 9500. Não espere suporte exato e níveis de resistência de médias móveis, especialmente as médias móveis mais longas. Os mercados são impulsionados pela emoção, o que os torna propensos a superações. Em vez de níveis exatos, as médias móveis podem ser usadas para identificar zonas de suporte ou de resistência. Conclusões As vantagens de usar médias móveis precisam ser ponderadas contra as desvantagens. As médias móveis são a tendência que segue, ou retardar, os indicadores que serão sempre um passo atrás. Isso não é necessariamente uma coisa ruim embora. Afinal, a tendência é o seu amigo e é melhor para o comércio na direção da tendência. As médias móveis asseguram que um comerciante está em linha com a tendência atual. Mesmo que a tendência é seu amigo, os títulos gastam uma grande quantidade de tempo em intervalos de negociação, o que torna as médias móveis ineficazes. Uma vez em uma tendência, as médias móveis mantê-lo-ão dentro, mas igualmente dar sinais atrasados. Don039t esperam vender no topo e comprar na parte inferior usando médias móveis. Tal como acontece com a maioria das ferramentas de análise técnica, as médias móveis não devem ser utilizadas por conta própria, mas em conjunto com outras ferramentas complementares. Os cartistas podem usar médias móveis para definir a tendência geral e, em seguida, usar o RSI para definir os níveis de sobrecompra ou sobrevenda. Adicionando médias móveis para gráficos StockCharts As médias móveis estão disponíveis como um recurso de sobreposição de preço na bancada do SharpCharts. Usando o menu suspenso Sobreposições, os usuários podem escolher uma média móvel simples ou uma média móvel exponencial. O primeiro parâmetro é usado para definir o número de períodos de tempo. Um parâmetro opcional pode ser adicionado para especificar qual campo de preço deve ser usado nos cálculos - O para o aberto, H para o alto, L para o baixo e C para o fechamento. Uma vírgula é usada para separar parâmetros. Outro parâmetro opcional pode ser adicionado para deslocar as médias móveis para a esquerda (passado) ou para a direita (futuro). Um número negativo (-10) deslocaria a média móvel para a esquerda 10 períodos. Um número positivo (10) deslocaria a média móvel para o direito 10 períodos. Múltiplas médias móveis podem ser superadas o preço parcela simplesmente adicionando outra linha de superposição para a bancada. Os membros do StockCharts podem alterar as cores eo estilo para diferenciar entre várias médias móveis. Depois de selecionar um indicador, abra Opções Avançadas clicando no pequeno triângulo verde. As Opções Avançadas também podem ser usadas para adicionar uma sobreposição média móvel a outros indicadores técnicos como RSI, CCI e Volume. Clique aqui para um gráfico ao vivo com várias médias móveis diferentes. Usando Médias Móveis com Varreduras StockCharts Aqui estão alguns exemplos de varreduras que os membros do StockCharts podem usar para varrer para várias situações de média móvel: Bullish Moving Average Cross: Esta varredura procura ações com uma média móvel em ascensão de 150 dias simples e uma cruz de alta das 5 EMA de dia e EMA de 35 dias. A média móvel de 150 dias está subindo, desde que ela esteja negociando acima de seu nível cinco dias atrás. Um cruzamento de alta ocorre quando o EMA de 5 dias se move acima do EMA de 35 dias em volume acima da média. Bearish Moving Average Cross: Este analisa procura por ações com uma queda de 150 dias de média móvel simples e um cruzamento de baixa da EMA de 5 dias e EMA de 35 dias. A média móvel de 150 dias está caindo, enquanto ela está negociando abaixo do seu nível cinco dias atrás. Uma cruz de baixa ocorre quando a EMA de 5 dias se move abaixo da EMA de 35 dias acima do volume médio. Estudo adicional O livro de John Murphy tem um capítulo dedicado a médias móveis e seus vários usos. Murphy abrange os prós e os contras de médias móveis. Além disso, Murphy mostra como as médias móveis funcionam com Bollinger Bands e sistemas de negociação baseados em canais. Análise Técnica dos Mercados Financeiros John MurphyCloudera Engineering Blog Média Movente Simples, Classes Secundárias e MapReduce (Parte 2) onde coluna-intervalo é todas as colunas dessa data para 29 dias antes. Agora copie esta fórmula para as próximas duas linhas, as datas 147342008148 e 147332008148. Você deve ter os valores 14735.396148, 14734.5293148, e 14733.5293148 que representam as médias móveis de 30 dias para este estoque sintético yahoo dados. Agora que we8217ve estabeleceu um exemplo básico no Excel let8217s dê uma olhada em como fazemos Simple Moving Average em R. Uma Quick Primer sobre Simple Moving Average em R Outra ferramenta comum no domínio de série de tempo, especialmente o setor financeiro, é a programação R língua. R é: Uma linguagem de programação e ambiente de software para computação estatística e gráficos. Um padrão de facto entre os estatísticos para o desenvolvimento de software estatístico e análise de dados. Uma implementação da linguagem de programação S combinada com a semântica de escopo lexical inspirada no Scheme. Atualmente desenvolvido pela R Development Core Team, mas originalmente foi desenvolvido por Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia. Baixe o binário R daqui e instale-o localmente (eles suportam tanto o linux quanto o win32). Uma vez instalado, inicie o console R e solte o menu 147Packages148, que é onde precisamos instalar o pacote TTR. Selecione um espelho e baixe este pacote. Agora carregue este pacote clicando na lista suspensa 147Packages148 e selecionando 147Load Package148. Encontre o pacote TTR que acabou de ser instalado e selecione-o. Em seguida, faça o download dos dados de estoque sintético do meu projeto no github que contém 33 linhas de dados de estoque sintético para processar. Para carregar esses dados CSV em R precisamos definir nosso diretório de trabalho clicando no item de menu 147File148 e, em seguida, em 147Change directory148. Dica rápida: a qualquer momento, o usuário pode digitar o nome da variável e pressionar Enter para exibir o conteúdo da variável. Agora que temos toda a preparação fora do caminho, let146s escrever a média móvel simples em R: troca stocksymbol 160160160160160160date160 open160 high160160 baixo volume close160160 adj. close 32160160160160 NYSE160160160160160160160160160160 AA 2008-02-03 38,85 39,28 38,26 38,37 11279900160160160160160 8,37 31160160160160 NYSE160160160160160160160160160160 AA 2008 -02-04 37,01 37,90 36,13 36,60 17752400160160160160 10,60 30160160160160 NYSE160160160160160160160160160160 AA 2008-02-05 31,16 31,89 30,55 30,69 17567800160160160160 30,53 29160160160160 NYSE160160160160160160160160160160 AA 2008-02-06 30,27 31,52 30,06 31,47160 8445100160160160160 31,31 28160160160160 NYSE160160160160160160160160160160 AA 2008-02-07 31,73 33,13 31,57 32,66 14338500160160160160 32,49 27160160160160 NYSE160160160160160160160160160160 AA 2008-02-08 32,58 33,42 32,11 32,70 10241400160160160160 32,53 26160160160160 NYSE160160160160160160160160160160 AA 2008-02-09 32,13 33,34 31,95 33,09160 9200400160160160160 32,9 2 25160160160160 NYSE160160160160160160160160160160 AA 2008-02-10 33,67 34,45 33,07 34,28 34,10 15186100160160160160 24160160160160 NYSE160160160160160160160160160160 AA 2008-02-11 34,57 34,85 33,98 33,90 34,08160 9528000160160160160 23160160160160 NYSE160160160160160160160160160160 AA 2008-02-12 33,30 33,64 32,52 32,67 32,50 11338000160160160160 22160160160160 NYSE160160160160160160160160160160 AA 2008-02- 13 32,95 33,37 32,26 32,41 32,41160 7230300160160160160 21160160160160 NYSE160160160160160160160160160160 AA 2008-02-14 32,24 33,25 31,90 32,78 32,78160 9058900160160160160 20160160160160 NYSE160160160160160160160160 160160AA 2008-02-15 32.67 33.81 32.37 33.76 33.76 10731400160160160160 19160160160160 NYSE160160160160160160160160160160 AA 2008-02-16 33,82 34,25 33,29 34,06 34,06 11249800160160160160 18160160160160 NYSE160160160160160160160160160160 AA 2008-02-17 34,33 34,64 33,26 33,49 12418900160160160160 33,49 17160160160160 NYSE160160160160160160160160160160 AA 2008-02-18 33.75 35 .52 33,63 35,51 21082100160160160160 35,51 16160160160160 NYSE160160160160160160160160160160 AA 2008-02-19 36,01 36,43 35,05 35,36 18238800160160160160 35,36 15160160160160 NYSE160160160160160160160160160160 AA 2008-02-20 35,16 35,94 35,12 35,72 14082200160160160160 35,72 14160160160160 NYSE160160160160160160160160160160 AA 2008-02-21 36,19 36,73 35,84 36,20 12825300160160160160 36,20 13160160160160 NYSE160160160160160160160160160160 AA 2008-02-22 35,96 36,85 35,51 36,83 10906600160160160160 36,83 12160160160160 NYSE160160160160160160160160160160 AA 2008-02-23 36,88 37,41 36,25 36,30 13078200160160160160 36,30 11160160160160 NYSE160160160160160160160160160160 AA 2008-02-24 36,38 36,64 35,58 36,55 12834300160160160160 36,55 10160160160160 NYSE160160160160160160160160160160 AA 2008-02-25 36.64 38.95 36,48 38,85 22500100160160160160 38,85 9160160160160160 NYSE160160160160160160160160160160 AA 2008-02-26 38,59 39,25 38,08 38,50 14417700160160160160 38,50 8160160160160160 NYSE16016016016016 0160160160160160 AA 2008-02-27 38,19 39,62 37,75 39,02 14296300160160160160 39,02 7160160160160160 NYSE160160160160160 160160160160160AA 2008-02-28 38,61 39,29 38,19 39,12 11421700160160160160 39,12 6160160160160160 NYSE160160160160160160160160160160 AA 2008-02-29 38,77 38,82 36,94 37,14 22611400160160160160 37,14 5160160160160160 NYSE160160160160160160160160160160 AA 2008-03-01 37.17 38,46 37,13 38,32 13964700160160160160 38,32 4160160160160160 NYSE160160160160160160160160160160 AA 2008-03-02 37,90 38,94 37,10 38,00 15715600160160160160 38,00 3160160160160160 NYSE160160160160160160160160160160 AA 2008-03-03 38,25 39,15 38,10 38,71 11754600160160160160 38,71 2160160160160160 NYSE160160160160160160160160160160 AA 2008-03-04 38,85 39,28 38,26 38,37 11279900160160160160 38,37 1160160160160160 NYSE160160160160160160160160160160 AA 2008-03-05 37.01 37.90 36.13 36.60 17752400160160160160 36.60 O código acima deve produzir nossa média móvel simples, que podemos ver digitando o nome do e variável 147sma148 para produzir o seguinte resultado: 1160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA 21160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA 33,52933 34,52933 35,39600 Dado que antes do 30º dia há Não é suficiente dados para produzir uma média móvel simples com base no nosso parâmetro set, as entradas 147NA148 são produzidos. Esses valores também correspondem aos valores em nossa planilha do Excel. R também tem um projeto interessante, chamado RHIPE, que executa código R em clusters Hadoop. Para dar uma olhada no RHIPE, visite seu site. Portanto, demos uma olhada no que é uma média móvel simples e como a produzimos em Excel e R. Ambos os dois exemplos envolviam uma quantia simbólica de dados interessante, mas não muito útil nos domínios problemáticos da série cronológica de hoje de alta densidade. À medida que seu conjunto de dados começa a se expandir para além de um único espaço de disco, o Hadoop se torna mais prático. A porção final desta série de blog de três partes explicará como usar o Hadoop146s MapReduce para calcular uma média móvel simples. Então, uma vez que você aplicou o código de exemplo para encontrar uma Média Móvel Simples do pequeno conjunto de dados de exemplo, vamos passar a usar este mesmo código para analisar mais de trinta anos no valor de todos os preços diários de fechamento de ações. 2 respostas em ldquo Simple Moving Average, Secundário Sort, e MapReduce (Parte 2) rdquo Great tutorial, quando você vai publicar parte trêsClouderia Engenharia Simple Moving Average, Secondary Sort, e MapReduce (Parte 3) Esta é a última peça para Uma série de blog de três partes. Se você gostaria de ver as partes anteriores desta série, por favor use o seguinte link: Anteriormente eu expliquei como usar o Excel e R como as ferramentas de análise para calcular a Média Móvel Simples de um pequeno conjunto de preços de fechamento de ações. Nesta peça final para a série de blog de três partes, vou aprofundar usando MapReduce para encontrar a média móvel simples de nosso pequeno conjunto de dados de amostra. Então, vou mostrar-lhe como usando o mesmo código, você será capaz de calcular a média móvel simples de cada preço de fechamento das ações desde 1980. Abaixo do buraco de coelho com Hadoop Nos exemplos acima nós demos uma olhada no cálculo da média móvel simples De uma quantidade relativamente pequena de dados. Para um monte de análise, excel e R são ferramentas muito eficazes, mas à medida que escalamos para gigabyte, terabyte e petabyte armazena dados que correm em alguns problemas com localidade de dados, velocidades de disco e velocidades de processamento. Para ilustrar esses fatores, podemos usar uma máquina mítica que possuía um único disco de 1 petabyte, que funcionava de forma semelhante às velocidades de disco atualmente. Para os propósitos deste exemplo bem usar uma velocidade de leitura de 40 MBs. Vamos dizer que é nosso trabalho para digitalizar através destes dados e produzir uma média móvel simples, o processador não impede o cálculo, e podemos sustentar um cálculo de janela em movimento através dos dados no total de 40 MBs. Vamos também assumir que os dados foram previamente classificados e que só tivemos de realizar uma varredura seqüencial que maximiza a taxa de transferência de dados a partir do disco e que poderia consistentemente entregar 40MBs para o pipeline de processamento. Baseado em Jeff Deans 12 Números Cada engenheiro deve saber slide este é uma configuração plausível. Nessa taxa, nosso cálculo de média móvel simples de 1 petabyte de dados levaria cerca de 310 dias para ser concluído. Para a maioria das situações, este custo operacional, em termos de tempo, torna pouco razoável considerar. Felizmente, a mecânica de HDFS e MapReduce mitigar esses fatores de tal forma que podemos fazer este problema um tempo linear e função de capital para nos ajudar a decidir o número de máquinas que queremos implementar de forma eficiente realizar esta varredura de média móvel simples. No exemplo de média móvel simples acima, negligenciamos considerar as restrições de: Armazenar o petabyte de dados em hardware não-mítico. Classificando o petabyte de dados. Considerando falha de hardware durante os 310 dias de tempo de processamento. Normalmente, as aplicações de séries temporais precisam de digitalizar os dados em algum momento, o que cria grandes montanhas para subir, se quisermos abordar grandes volumes de dados de séries temporais nos sistemas atuais. Estavam vendo multi-terabyte e multi-petabyte fontes de dados no domínio de série de tempo todos os dias, incluindo e em cada um desses domínios o cenário acima é um desafio muito real para enfrentar. HDFS resolve os problemas de armazenamento e falha acima, mas o que acontece com os problemas de classificação e processamento? Separar grandes quantidades de dados em si é um problema não trivial, mas é acessível com alguns truques no MapReduce. Vamos dar uma olhada no código MapReduce real que podemos baixar para compilar e produzir nossa própria média móvel escalável simples, para resolver alguns desses pontos de dor. Média móvel simples em MapReduce Normalmente, um aplicativo MapReduce é composto de duas funções: (você adivinhou) uma função de mapa e uma função de redução. No mundo da programação em Java criamos uma classe de mapa e uma classe de redução, cada uma com métodos herdados úteis para seus propósitos respeitosos. Usamos o modelo de programação MapReduce porque ele é construído para mitigar problemas de concorrência em nossos algoritmos e obtemos nosso paralelismo escalável relativamente sem dor. A função de mapa pode envolver o código que executa uma operação de par por valor-chave, mas sua principal operação lógica é agrupar dados por chaves. Uma maneira muito fácil de pensar sobre uma função de mapa é pensar nela como uma projeção lógica dos dados ou uma cláusula por grupo. A função de redução é usada para levar esses grupos (individualmente) e executar um processo entre os valores que foram agrupados. Operações comuns em funções de redução incluem: Em nosso exemplo de média móvel simples, no entanto, não operamos especificamente em uma base por valor, nem produzimos um agregado em todos os valores. Nossa operação no sentido agregado envolve uma janela deslizante, que executa suas operações em um subconjunto dos dados em cada etapa. Também temos que considerar que os pontos em nossos dados de séries temporais não são garantidos para chegar à redução em ordem e precisam ser classificados em seções anteriores. Isso ocorre porque com várias funções de mapa lendo várias seções dos dados de origem, MapReduce não impõe nenhuma ordem nos pares de valores-chave agrupados nos esquemas de partição e de classificação padrão. Há o cenário onde temos dados particionados classificados, mas para o bem deste exemplo foram indo para lidar com o mais jardim-variedade dados de série de tempo não ordenados. Deixa para fazer exame de um primeiro passo em como nós poderíamos projetar este trabalho simples médio movente de MapReduce. Queremos agrupar todos os valores ajustados ajustados de ações para que possamos aplicar a operação de média móvel simples nos dados de séries temporais classificadas. Queremos emitir cada um dos pares de valores-chave da série de tempo, codificados em um símbolo de estoque, para agrupar esses valores. Na fase de redução podemos executar uma operação, aqui a média móvel simples, sobre os dados. Uma vez que os dados mais do que provavelmente não vai chegar ao redutor na ordem ordenada bem necessidade de classificar os dados antes de podermos calcular a média móvel simples. Uma maneira comum de classificar dados é carregar os dados na memória em uma estrutura de dados, como um heap, bem como como isso é feito em um programa java normal. Neste caso, use a classe de filas de prioridade do Javas para classificar nossos dados. Também precisamos considerar a quantidade de memória usada pelos dados da série de tempo de entrada durante a classificação, pois este é um fator limitante na quantidade de dados que podemos classificar. Neste projeto, temos de carregar todos os dados da série de tempo antes que possamos iniciar o processamento e se a quantidade de dados para classificar exceder o tamanho de heap disponível, temos um problema. Um exemplo desta implementação está hospedado no github: Para executar este código em seu próprio cluster Hadoop, faça o download do CDH do Cloudera e configure um cluster pseudo-distribuído 8211 que é um único nó do Hadoop. Pseudo-modo distribuído é uma ótima maneira de experimentar código com Hadoop. Em seguida, faça o download e compile o código da média móvel em um jar. Para baixar o código diretamente do github (no shell no MacOSX, janela do terminal ssh no linux, ou MINGW32 para win32) we8217ll usar o comando: Nossa primeira passagem é uma solução decente, mas foram limitados pela nossa máquina Java Virtual Machine (JVM) Heap tamanho e estamos tendo tempo para manualmente ordenar os dados nós mesmos. Com algumas mudanças de design, podemos resolver ambos os problemas aproveitando algumas propriedades inerentes do MapReduce. Primeiro, queremos olhar para o caso de classificar os dados na memória em cada redutor. Atualmente, temos de nos certificar de que nunca enviamos mais dados para um único redutor do que pode caber na memória. A maneira que podemos atualmente controlar isso é dar a cada criança redutor JVM mais heap andor ou mais para particionar nossos dados de séries de tempo na fase de mapa. Neste caso, partição wed mais pelo tempo, quebrando nossos dados em janelas menores do tempo. Em oposição a uma maior partição dos dados, outra abordagem para este problema é permitir que o Hadoop classifique os dados para nós no que é chamado de fase shuffle do MapReduce. Se os dados chegam a um redutor já em ordem ordenada, podemos diminuir a pegada de memória e reduzir o número de loops através dos dados, observando somente as N amostras seguintes para cada cálculo de média móvel simples. Isso nos leva ao aspecto crucial deste artigo, que é chamado de shuffles secundário mecânico de classificação. Classificar é algo que podemos deixar Hadoop fazer por nós e Hadoop provou ser muito bom em classificar grandes quantidades de dados, ganhando a competição Grey Sort em 2008. Ao usar o mecanismo de classificação secundário podemos resolver tanto as nossas questões de heap e classificar de forma bastante simples E eficientemente. Para empregar o tipo secundário em nosso código, precisamos fazer a chave um composto da chave natural eo valor natural. Abaixo, na Figura 1, vemos um diagrama de como isso ficaria visualmente. Figura 1: Diagrama de Teclado Composto A Tecla Composto dá ao Hadoop as informações necessárias durante o shuffle para executar uma classificação não apenas no 8220stock symbol8221, mas também no carimbo de data / hora. A classe que classifica essas teclas composites é chamada de comparador chave ou aqui 8220CompositeKeyComparator8221. O comparador chave deve ordenar pela chave composta, que é a combinação da chave natural eo valor natural. Podemos ver abaixo na Figura 2 onde uma versão abstrata do tipo secundário está sendo executada em uma chave composta de 2 inteiros. Figura 2: CompositeKeyComparator classificando Composite Keys (teclas são inteiros). Na Figura-3 abaixo vemos um exemplo mais realista onde we8217ve mudou a Chave Composta para ter uma seqüência de símbolo de estoque (K1) e um timestamp (K2, exibido como uma data, mas no código é um longo em ms). O diagrama classificou os pares KV tanto por 8220K1: símbolo de estoque8221 (chave natural) e 8220K2: marca de tempo8221 (chave secundária). Figura 3: CompositeKeyComparator no trabalho em nossas chaves compostas. A chave composta agora é representada com um símbolo de estoque de cordas (K1) e uma data (K2). Uma vez que nós classificamos nossos dados na chave composta, agora precisamos dividir os dados para a fase de redução. Na Figura 4 abaixo vemos como os dados da Figura 3 acima foram particionados com o NaturalKeyPartitioner. Figura 4: Particionamento pela chave natural com o NaturalKeyPartitioner. Uma vez que we8217ve particionou nossos dados, os redutores agora podem começar a baixar os arquivos de partição e iniciar sua fase de mesclagem. Inf Figura 5 abaixo veremos como o comparador de agrupamento, ou NaturalKeyGroupingComparator, é usado para garantir que uma chamada de reduce () veja apenas os dados logicamente agrupados significados para essa chave composta. Figura 5: Agrupando Comparator mesclando arquivos de partição. O comparador e o comparador de agrupamento para a chave composta devem considerar apenas a chave natural para particionamento e agrupamento. Abaixo está uma breve descrição do código Simple Moving Average que é alterado para usar o tipo secundário e é hospedado no github. Se você notar, os nomes das classes correspondem à terminologia usada nos diagramas acima e em Tom Whites Hadoop: O Guia Definitivo (capítulo 8 MapReduce Recursos) para tornar o código mais fácil de entender. NaturalKey 8211 o que você normalmente usaria como a chave ou grupo por operador. Neste caso, a Chave Natural é o símbolo de grupo ou de ações, pois precisamos agrupar dados de estoque potencialmente não ordenados antes de podermos classificá-los e calcular a média móvel simples. Composite Key 8211 Uma chave que é uma combinação da chave natural e do valor natural que queremos classificar por. 5 respostas em ldquo Simple Moving Average, Secundário Sort, e MapReduce (Parte 3) rdquo Cool truque com o split sorterpartitioner. Tanto quanto eu posso dizer isto trabalha grande até que a série se torne extremamente longa (pense 30 anos de dados do nível do carrapato) 8211 parece como particionar pelo tempo pode ser muito complicado. Você sabe de alguma coisa construída no hadoop como um particionador que pode cuspir os mesmos dados em várias partições que eu experimentei com mapeadores que duplicam valores em várias chaves, mas eu me pergunto se existe uma maneira mais convencional de fazer isso. Evan, Você está morto com o tamanho dos dados em um único espaço de teclas. Eu bati este mesmo problema quando trabalhando no projeto openPDC para o NERC: Um sensor poderia ter literalmente bilhões de pontos em um período muito curto de tempo, por isso, para trabalhos de protótipo nós coisas chaveado para um único dia (3.600.000ms): Em um mais Versão complexa eu teria usado sobreposição de slots de tempo para que o mapeador obteria dados suficientes de keyspaces adjacentes para cobrir um único comprimento de janela. Por enquanto, I8217d diz que você está no caminho certo com os valores duplicados. Eu sei que isso não está relacionado a médias móveis, mas quão preciso foi a série de tempo SAX correspondência usado no PDC eu implementado algo como isso (exceto usando o MapReduce API 2), e no loop da função reduce (), sempre que o. Next () método é chamado no Iterator, temos um novo valor, mas a chave também milagrosamente mudanças. Em vez disso, a parte da chave composta que não foi usada como uma chave natural (o timestamp neste exemplo) muda. Isso foi bastante surpreendente. Como isso acontece Post navigation Adotando o Apache Hadoop no Governo Federal

No comments:

Post a Comment