Apache Spark

Instalando Apache Spark no Ubuntu 17.10

Instalando Apache Spark no Ubuntu 17.10

Apache Spark é uma ferramenta de análise de dados que pode ser usada para processar dados de HDFS, S3 ou outras fontes de dados na memória. Neste post, vamos instalar o Apache Spark em um Ubuntu 17.10 maquinas.

Versão Ubuntu

Para este guia, usaremos o Ubuntu versão 17.10 (GNU / Linux 4.13.0-38-x86_64 genérico).

Apache Spark faz parte do ecossistema Hadoop para Big Data. Tente instalar o Apache Hadoop e faça um aplicativo de amostra com ele.

Atualizando pacotes existentes

Para iniciar a instalação do Spark, é necessário que atualizemos nossa máquina com os pacotes de software mais recentes disponíveis. Podemos fazer isso com:

sudo apt-get update && sudo apt-get -y dist-upgrade

Como o Spark é baseado em Java, precisamos instalá-lo em nossa máquina. Podemos usar qualquer versão Java acima do Java 6. Aqui, usaremos o Java 8:

sudo apt-get -y install openjdk-8-jdk-headless

Baixando arquivos Spark

Todos os pacotes necessários agora existem em nossa máquina. Estamos prontos para baixar os arquivos Spark TAR necessários para que possamos começar a configurá-los e executar um programa de amostra com o Spark também.

Neste guia, iremos instalar Spark v2.3.0 disponivel aqui:

Página de download do Spark

Baixe os arquivos correspondentes com este comando:

wget http: // www-us.apache.org / dist / spark / spark-2.3.0 / faísca-2.3.0-bin-hadoop2.7.tgz

Dependendo da velocidade da rede, isso pode levar alguns minutos, pois o arquivo é grande:

Baixando Apache Spark

Agora que baixamos o arquivo TAR, podemos extrair no diretório atual:

tar xvzf spark-2.3.0-bin-hadoop2.7.tgz

Isso levará alguns segundos para ser concluído devido ao grande tamanho do arquivo do arquivo:

Arquivos desarquivados no Spark

Quando se trata de atualizar o Apache Spark no futuro, pode criar problemas devido às atualizações do Path. Esses problemas podem ser evitados com a criação de um softlink para o Spark. Execute este comando para fazer um softlink:

ln -s spark-2.3.0-bin-hadoop2.7 faísca

Adicionando Spark ao Caminho

Para executar scripts do Spark, iremos adicioná-lo ao caminho agora. Para fazer isso, abra o arquivo bashrc:

vi ~ /.bashrc

Adicione essas linhas ao final do .arquivo bashrc para que esse caminho possa conter o caminho do arquivo executável Spark:

SPARK_HOME = / LinuxHint / spark
exportar PATH = $ SPARK_HOME / bin: $ PATH

Agora, o arquivo se parece com:

Adicionando Spark ao PATH

Para ativar essas alterações, execute o seguinte comando para o arquivo bashrc:

fonte ~ /.bashrc

Iniciando Spark Shell

Agora, quando estivermos fora do diretório spark, execute o seguinte comando para abrir o shell apark:

./ spark / bin / spark-shell

Veremos que o shell do Spark está aberto agora:

Iniciando o Spark shell

Podemos ver no console que o Spark também abriu um console da Web na porta 404. Vamos dar uma visita:

Console da Web Apache Spark

Embora estejamos operando no próprio console, o ambiente da web é um lugar importante para olhar quando você executa trabalhos pesados ​​do Spark para que você saiba o que está acontecendo em cada trabalho do Spark que você executa.

Verifique a versão do shell do Spark com um comando simples:

sc.versão

Voltaremos algo como:

res0: String = 2.3.0

Fazendo um exemplo de aplicativo Spark com Scala

Agora, faremos um exemplo de aplicativo Contador de palavras com Apache Spark. Para fazer isso, primeiro carregue um arquivo de texto no contexto do Spark no shell do Spark:

scala> var Data = sc.textFile ("/ root / LinuxHint / spark / README.md ")
Dados: org.apache.fagulha.rdd.RDD [String] = / root / LinuxHint / spark / README.md MapPartitionsRDD [1] em textFile em: 24
scala>

Agora, o texto presente no arquivo deve ser dividido em tokens que o Spark pode gerenciar:

scala> var tokens = Dados.flatMap (s => s.dividir(" "))
tokens: org.apache.fagulha.rdd.RDD [String] = MapPartitionsRDD [2] em flatMap em: 25
scala>

Agora, inicialize a contagem de cada palavra para 1:

scala> var tokens_1 = tokens.mapa (s => (s, 1))
tokens_1: org.apache.fagulha.rdd.RDD [(String, Int)] = MapPartitionsRDD [3] no mapa em: 25
scala>

Finalmente, calcule a frequência de cada palavra do arquivo:

var sum_each = tokens_1.reduzByKey ((a, b) => a + b)

É hora de olhar a saída do programa. Colete os tokens e suas respectivas contagens:

scala> sum_each.coletar ()
res1: Array [(String, Int)] = Array ((pacote, 1), (For, 3), (Programas, 1), (processamento.,1), (Porque, 1), (O, 1), (página] (http: // faísca.apache.org / documentação.html).,1), (cluster.,1), (its, 1), ([run, 1), (than, 1), (APIs, 1), (have, 1), (Try, 1), (computation, 1), (through, 1) ), (vários, 1), (Este, 2), (gráfico, 1), (Colmeia, 2), (armazenamento, 1), (["Especificando, 1), (Para, 2), (" fio " , 1), (Uma vez, 1), (["Útil, 1), (preferir, 1), (SparkPi, 2), (motor, 1), (versão, 1), (arquivo, 1), (documentação ,, 1), (processamento ,, 1), (o, 24), (são, 1), (sistemas.,1), (params, 1), (not, 1), (diferente, 1), (referir, 2), (Interactive, 2), (R ,, 1), (dado.,1), (if, 4), (build, 4), (when, 1), (be, 2), (Tests, 1), (Apache, 1), (thread, 1), (programs ,, 1 ), (incluindo, 4), (./ bin / run-example, 2), (Spark.,1), (pacote.,1), (1000).contagem (), 1), (Versões, 1), (HDFS, 1), (D ..
scala>

Excelente! Conseguimos rodar um exemplo simples de contador de palavras usando a linguagem de programação Scala com um arquivo de texto já presente no sistema.

Conclusão

Nesta lição, vimos como podemos instalar e começar a usar o Apache Spark no Ubuntu 17.10 máquina e execute um aplicativo de amostra nela também.

Leia mais posts baseados no Ubuntu aqui.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...