<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vinícius Aires Barros</title>
    <description>Data Scientist passionate about technology</description>
    <link>https://v4ires.github.io</link>
    <atom:link href="https://v4ires.github.io/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Comandos básicos do Apache Hadoop 2.8.x - (PT-BR)</title>
        <description>&lt;h2 id=&quot;comandos-básicos-do-apache-hadoop-28x---pt-br&quot;&gt;Comandos básicos do Apache Hadoop 2.8.x - (PT-BR)&lt;/h2&gt;

&lt;h4 id=&quot;requisitos-iniciais&quot;&gt;Requisitos iniciais:&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;1) Tenha o Apache Hadoop configurado em modo &lt;em&gt;&lt;a href=&quot;/config-hadoop-single-node/&quot; target=&quot;_blank&quot;&gt;single node&lt;/a&gt;&lt;/em&gt; ou &lt;em&gt;&lt;a href=&quot;/config-hadoop-multi-node/&quot; target=&quot;_blank&quot;&gt;multi node&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*ps: Este tutorial foi testado com o sistema operacional Ubuntu 16.04 e 14.04. Caso deseje configurar em uma versão mais antiga, recente ou em outro SO, pequenas mudanças podem ocorrer nos procedimentos apresentados.&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;O projeto Apache Hadoop é um &lt;em&gt;software&lt;/em&gt; de código aberto mantido pela Apache Foundation que tem como propósito fornecer uma implementação de código aberto do modelo de programação &lt;em&gt;MapReduce&lt;/em&gt; de forma confiável e escalável. O Hadoop é projetado para ampliar o processamento de um único servidor em milhares de máquinas, onde cada uma das máquinas oferecem poder de processamento e armazenamento local. Esta ferramenta é utilizada para processamento em &lt;em&gt;batch&lt;/em&gt; de grandes volumes de dados (&lt;em&gt;Big Data&lt;/em&gt;). Atualmente, o Apache Hadoop é uma das ferramentas mais conhecidas para processamento distribuído, mas existem outras ferramentas similares que se integram ao Hadoop, como o &lt;strong&gt;Apache Spark&lt;/strong&gt;, &lt;strong&gt;Apache Storm&lt;/strong&gt; e dentre outros.&lt;/p&gt;

&lt;p&gt;*ps: para mais informações a respeito do Apache Hadoop acessem o site &lt;a href=&quot;http://hadoop.apache.org/&quot;&gt;http://hadoop.apache.org/&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;lets-get-started&quot;&gt;Let’s get started&lt;/h3&gt;

&lt;p&gt;Neste tutorial você irá aprender a utilizar alguns comandos básicos do Apache Hadoop. Além disso, será mostrado como gerenciar arquivos no sistema de arquivos &lt;em&gt;Hadoop Distributed File System&lt;/em&gt; (HDFS).&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/trash-pc.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h3 id=&quot;hadoop-scripts-tools&quot;&gt;Hadoop Scripts Tools&lt;/h3&gt;

&lt;p&gt;O Apache Hadoop fornece por padrão alguns &lt;em&gt;scripts&lt;/em&gt; para o gerenciamento das instâncias da ferramenta. O diretório padrão onde se encontram os &lt;em&gt;scripts&lt;/em&gt; é o &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop/sbin&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Observa-se que na pasta &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop/sbin&lt;/code&gt; encontra-se os seguintes &lt;em&gt;scripts&lt;/em&gt; que inclui sua versão para sistemas &lt;em&gt;bash&lt;/em&gt; (Linux e MacOS) como também para o &lt;em&gt;prompt&lt;/em&gt; de comando do sistema operacional MS Windows.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;distribute-exclude.sh    start-all.cmd        stop-balancer.sh
hadoop-daemon.sh         start-all.sh         stop-dfs.cmd
hadoop-daemons.sh        start-balancer.sh    stop-dfs.sh
hdfs-config.cmd          start-dfs.cmd        stop-secure-dns.sh
hdfs-config.sh           start-dfs.sh         stop-yarn.cmd
httpfs.sh                start-secure-dns.sh  stop-yarn.sh
kms.sh                   start-yarn.cmd       yarn-daemon.sh
mr-jobhistory-daemon.sh  start-yarn.sh        yarn-daemons.sh
refresh-namenodes.sh     stop-all.cmd
slaves.sh                stop-all.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Por comodidade é mais prático configurarmos este diretório no arquivo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bashrc&lt;/code&gt; ou no &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/profile&lt;/code&gt;. Para isso devemos especificar o caminho &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop/sbin&lt;/code&gt; no &lt;em&gt;Path&lt;/em&gt; do sistema, adicionando o seguinte comando.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_INSTALL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/opt/hadoop
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;:&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;/sbin&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Os comandos básicos mais utilizados é o de iniciar o sistema de arquivos HDFS e do Hadoop YARN. Como por exemplo:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Iniciar o sistema de arquivos distribuído HDFS&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;start-dfs.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;Iniciar o Hadoop Yarn&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;start-yarn.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;Finalizar os processos do sistema de arquivos HDFS&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt; stop-dfs.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;Finalizar os processos o Hadoop Yarn&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;stop-yarn.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Existem alguns &lt;em&gt;scripts deprecated&lt;/em&gt; neste diretório, mas que ainda funcionam perfeitamente com o Hadoop:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Inicia todos os processos relacionados com Hadoop e o HDFS&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;start-all.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;Finaliza todos os processos relacionados com Hadoop e o HDFS&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;stop-all.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;comandos-básicos-do-apache-hadoop&quot;&gt;Comandos Básicos do Apache Hadoop&lt;/h3&gt;

&lt;p&gt;O Apache Hadoop fornece alguns arquivos binários onde podem ser realizadas algumas operações importantes. O diretório padrão onde se encontra os binários é o &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop/bin&lt;/code&gt;, nele você encontra os seguintes binários:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;container-executor  hdfs      mapred.cmd               yarn
hadoop              hdfs.cmd  rcc                      yarn.cmd
hadoop.cmd          mapred    test-container-executor&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Por comodidade é mais prático configurarmos este diretório no arquivo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bashrc&lt;/code&gt; ou no &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/profile&lt;/code&gt;. Para isso devemos especificar o caminho &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop/bin&lt;/code&gt; no &lt;em&gt;Path&lt;/em&gt; do sistema, adicionando o seguinte comando.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_INSTALL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/opt/hadoop
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;:&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;/bin&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: Não se esqueça de atualizar as variáveis de ambiente com o comando &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;source ~/.bashrc&lt;/code&gt; our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/profile&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;O comando mais utilizado é o HDFS, com ele é possível executar as rotinas &lt;em&gt;MapReduce&lt;/em&gt;. Para executar um código &lt;em&gt;MapReduce&lt;/em&gt; basta executar o seguinte comando:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hadoop jar WordCount.jar WordCount /input /output&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Com o comando HDFS também é possível gerenciar os arquivos que estão no sistema de arquivos do Hadoop. A seguir e demonstrado alguns exemplos básicos de comando básicos no sistema de arquivos HDFS, note que todos os comando apresentados se assemelham ao comandos do &lt;em&gt;bash&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;*ps: Todos os comando iniciam com o prefixo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hdfs dfs&lt;/code&gt;, mas existe também a possibilidade de utilizar o comando depreciado &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hadoop fs&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Criar um diretório:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mkdir&lt;/span&gt; &amp;lt;paths&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mkdir&lt;/span&gt; /user/hduser/input&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Listar diretórios:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-ls&lt;/span&gt; &amp;lt;args&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-ls&lt;/span&gt; /user&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Fazer &lt;em&gt;upload&lt;/em&gt; de um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-put&lt;/span&gt; &amp;lt;file_path&amp;gt; &amp;lt;hdfs_path&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-put&lt;/span&gt; my_file.txt /user/hduser/input&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Fazer &lt;em&gt;download&lt;/em&gt; de um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-get&lt;/span&gt; &amp;lt;hdfs_path&amp;gt; &amp;lt;local_path&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-get&lt;/span&gt; /user/hduser/input/my_file.txt ~/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Remover um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; &amp;lt;file_name&amp;gt;  
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; /user/hduser/input/my_file.txt&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Remover um diretório:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-rmr&lt;/span&gt; &amp;lt;hdfs_path&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-rmr&lt;/span&gt; /user/hduser/input&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Renomear um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; &amp;lt;file_name&amp;gt; &amp;lt;file_name&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; /user/hduser/input/my_file.txt /user/hduser/input/file.txt&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Mover um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; &amp;lt;hdfs_src&amp;gt; &amp;lt;hdfs_dest&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; /user/hduser/input/my_file.txt /user/hduser&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Mover um diretório:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; &amp;lt;hdfs_dir&amp;gt; &amp;lt;hdfs_dir&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-mv&lt;/span&gt; /user/hduser/input /user&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Mostrar o tamanho do arquivo em &lt;em&gt;bytes&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-du&lt;/span&gt; &amp;lt;file or directory&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-du&lt;/span&gt; /user/hduser/input/my_file.txt
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-du&lt;/span&gt; /user/hduser/input/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Visualizar o conteúdo de um arquivo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#Comando&lt;/span&gt;
hdfs dfs &lt;span class=&quot;nt&quot;&gt;-cat&lt;/span&gt; &amp;lt;file&amp;gt;
&lt;span class=&quot;c&quot;&gt;#Exemplo&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;hdfs dfs &lt;span class=&quot;nt&quot;&gt;-cat&lt;/span&gt; /user/hduser/input/my_file.txt&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Agora você aprendeu alguns comandos básicos do Hadoop. Agora você já pode gerenciar arquivos no HDFS e aplicar algumas operações básicas :)&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/coding-awesome.gif&quot; style=&quot;width: 60%;&quot; /&gt;
&lt;/p&gt;

&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h2&gt;

&lt;p&gt;Material desenvolvido durante o meu Mestrado no Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (&lt;a href=&quot;http://icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;ICMC-USP&lt;/a&gt;). Além disso, faço um agradecimento em especial ao Laboratório de Sistemas Distribuídos e Programação Concorrente (&lt;a href=&quot;http://lasdpc.icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;LaSDPC&lt;/a&gt;), o qual faço parte que me permitiu a criação deste material. Por fim, informo que é permitido livremente a reprodução integral deste material desde que sejam feitas as devidas referências ao autor ;)&lt;/p&gt;

&lt;h2 id=&quot;referências&quot;&gt;Referências&lt;/h2&gt;

&lt;p&gt;[1] Apache Foundation. Hadoop: &lt;strong&gt;Apache Hadoop&lt;/strong&gt;. Acessado em Agosto de 2016. Disponível em: &lt;a href=&quot;http://hadoop.apache.org&quot;&gt;http://hadoop.apache.org&lt;/a&gt;
Dzone&lt;/p&gt;

&lt;p&gt;[2] Dzone/Big Data Zone. &lt;strong&gt;&lt;em&gt;Top 10 Hadoop Shell Commands to Manage HDFS&lt;/em&gt;&lt;/strong&gt;. Acessado em Outubro de 2016. Disponível em &lt;a href=&quot;https://dzone.com/articles/top-10-hadoop-shell-commands&quot;&gt;https://dzone.com/articles/top-10-hadoop-shell-commands&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 22 Oct 2017 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/hadoop-cmd-basicos/</link>
        <guid isPermaLink="true">https://v4ires.github.io/hadoop-cmd-basicos/</guid>
      </item>
    
      <item>
        <title>Configuração do Apache Hadoop em Single Node - (PT-BR)</title>
        <description>&lt;h2 id=&quot;instalação-do-apache-hadoop-28x-em-modo-single-node---pt-br&quot;&gt;Instalação do Apache Hadoop 2.8.x em modo Single Node - (PT-BR)&lt;/h2&gt;

&lt;h4 id=&quot;requisitos-iniciais&quot;&gt;Requisitos iniciais:&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;1) Tenha o Java 7+ instalado&lt;/li&gt;
  &lt;li&gt;2) Tenha o servidor SSH devidamente instalado e configurado&lt;/li&gt;
  &lt;li&gt;3) Tenha a variável JAVA_HOME configurada&lt;/li&gt;
  &lt;li&gt;4) Configure o SSH para o acesso sem senha com o endereço &lt;em&gt;localhost&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*ps: Este tutorial foi testado com o sistema operacional Ubuntu 16.04 e 14.04. Caso deseje configurar em uma versão mais antiga, recente ou em outro SO, pequenas mudanças podem ocorrer nos procedimentos apresentados.&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;O projeto Apache Hadoop é um &lt;em&gt;software&lt;/em&gt; de código aberto mantido pela Apache Foundation que tem como propósito fornecer uma implementação de código aberto do modelo de programação &lt;em&gt;MapReduce&lt;/em&gt; de forma confiável e escalável. O Hadoop é projetado para ampliar o processamento de um único servidor em milhares de máquinas, onde cada uma das máquinas oferecem poder de processamento e armazenamento local. Esta ferramenta é utilizada para processamento em &lt;em&gt;batch&lt;/em&gt; de grandes volumes de dados (&lt;em&gt;Big Data&lt;/em&gt;). Atualmente, o Apache Hadoop é uma das ferramentas mais conhecidas para processamento distribuído, mas existem outras ferramentas similares que se integram ao Hadoop, como o &lt;strong&gt;Apache Spark&lt;/strong&gt;, &lt;strong&gt;Apache Storm&lt;/strong&gt; e dentre outros.&lt;/p&gt;

&lt;p&gt;*para mais informações a respeito do Apache Hadoop acessem o site &lt;a href=&quot;http://hadoop.apache.org/&quot;&gt;http://hadoop.apache.org/&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;lets-get-started&quot;&gt;Let’s get started&lt;/h3&gt;

&lt;p&gt;Neste tutorial você irá aprender a configurar o Apache Hadoop no modo &lt;em&gt;Single Node&lt;/em&gt;. Montando um ambiente capaz de executar seus primeiros &lt;em&gt;scripts&lt;/em&gt; em &lt;em&gt;MapReduce&lt;/em&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/coding-girl-fast.gif&quot; style=&quot;width: 60%;&quot; /&gt;
&lt;/p&gt;

&lt;h3 id=&quot;instale-o-java-jdk-e-configure-o-java_home&quot;&gt;Instale o Java JDK e configure o JAVA_HOME&lt;/h3&gt;

&lt;p&gt;Instale o Java 8 com o seguinte comando:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;openjdk-8-jdk&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Verifique a instalação do Java:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# java &lt;span class=&quot;nt&quot;&gt;-version&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicionar o JAVA_HOME na variável PATH:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim /etc/environments&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicionar ao final do arquivo a variável JAVA_HOME:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nv&quot;&gt;JAVA_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/lib/jvm/java-8-openjdk-amd64&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Atualize os índices da variável de ambiente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; /etc/environment&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Verifique se o Path está correto:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;instale-e-configure-o-servidor-ssh-sem-senha&quot;&gt;Instale e Configure o Servidor SSH (Sem Senha)&lt;/h3&gt;

&lt;p&gt;Caso não tenha instalado o ssh, instale o servidor ssh com o seguinte comando:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;ssh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Verifique se a máquina tem acesso a ssh sem senha no localhost:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# ssh localhost&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Caso seja solicitado uma senha, faça o seguinte procedimento:&lt;/p&gt;

&lt;p&gt;Gere uma chave pública de acesso ao ssh&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# ssh-keygen &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; rsa &lt;span class=&quot;nt&quot;&gt;-P&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Agora com a chave gerada e adicione ela ao diretório de chaves autorizadas:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/.ssh/id_rsa.pub &lt;span class=&quot;o&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/.ssh/authorized_keys&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;configure-o-apache-hadoop-single-node&quot;&gt;Configure o Apache Hadoop (Single Node)&lt;/h3&gt;

&lt;p&gt;Faça o download do Apache Hadoop, neste caso a versão 2.8.1:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# wget http://mirror.nbtelecom.com.br/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Descompacte o Apache Hadoop no diretório /opt:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-zxvf&lt;/span&gt; hadoop-2.8.1.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Agora configure as variáveis de ambiente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#caso você prefira que todos usuários do sistema tenham as variáveis de ambiente&lt;/span&gt;
~# vim /etc/profile &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#caso você prefira que apenas o seu usuário tenham as variáveis de ambiente&lt;/span&gt;
~# vim ~/.bashrc &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione ao final do arquivo os seguintes variáveis de ambiente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#HADOOP VARIABLES START&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JAVA_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;caminho_para_o_java_home
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_INSTALL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;caminho_para_o_haddop
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;:&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;/bin
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;:&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;/sbin
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_MAPRED_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_COMMON_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_HDFS_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;YARN_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_COMMON_LIB_NATIVE_DIR&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;/lib/native
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_OPTS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-Djava.library.path=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_INSTALL&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/lib&quot;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#HADOOP VARIABLES END&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;OBS: Substitua &lt;strong&gt;&lt;em&gt;caminho_para_o_java_home&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;caminho_para_o_hadoop&lt;/em&gt;&lt;/strong&gt; pelos seus respectivos paths ;)&lt;/p&gt;

&lt;p&gt;Atualize os índices das variáveis de ambiente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; ~/.bashrc&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; /etc/profile&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Agora edite o arquivo de variáveis de ambiente do Hadoop:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim hadoop-2.8.1/etc/hadoop/hadoop-env.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Edite a variável de ambiente JAVA_HOME:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JAVA_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/lib/jvm/java-8-openjdk-amd64&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Crie o diretório onde será o ponto de montagem do sistemas de arquivos do Hadoop o HDFS:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; ~/hadoop_store/hdfs/namenode
~# &lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; ~/hadoop_store/hdfs/datanode&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Configure o arquivo hdfs-site.xml com o caminho das pastas criadas:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim hadoop-2.8.1/etc/hadoop/hdfs-site.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione as seguintes propriedades:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.replication&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.namenode.name.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;file:######NAMENODE_FOLDER_PATH######&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.datanode.data.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;file:######DATANODE_FOLDER_PATH######&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Crie um diretório temporário na pasta de instalação do Hadoop:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; ~/hadoop_store/hdfs/tmp&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Configure o arquivo core-site.xml&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim hadoop-2.8.1/etc/hadoop/core-site.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione as seguintes propriedades&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hadoop.tmp.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;######TMP_FOLDER_PATH######&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;A base for other temporary directories.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;fs.default.name&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;hdfs://localhost:54310&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;The name of the default file system.  A URI whose
  scheme and authority determine the FileSystem implementation.  The
  uri's scheme determines the config property (fs.SCHEME.impl) naming
  the FileSystem implementation class.  The uri's authority is used to
  determine the host, port, etc. for a filesystem.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Configure o arquivo mapred-site.xml:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;cp &lt;/span&gt;hadoop-2.8.1/etc/hadoop/mapred-site.xml.template hadoop-2.8.1/etc/hadoop/mapred-site.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione a seguinte propriedade:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;mapred.job.tracker&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;localhost:54311&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;The host and port that the MapReduce job tracker runs
  at.  If &quot;local&quot;, then jobs are run in-process as a single map
  and reduce task.
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Configure o arquivo o arquivo yarn-site.xml:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim yarn-site.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione as seguintes propriedades:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.resourcemanager.hostname&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;frontend&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;The hostname of the RM.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.nodemanager.aux-services&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;mapreduce_shuffle&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.nodemanager.aux-services.mapreduce.shuffle.class&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;org.apache.hadoop.mapred.ShuffleHandler&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Formate o sistema de arquivos HDFS:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# hadoop namenode &lt;span class=&quot;nt&quot;&gt;-format&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Inicie os serviços do Hadoop:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# start-dfs.sh &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; start-yarn.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Verifique os processos do Hadoop:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# jps&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;O console deve aparecer uma saída semelhante a essa:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;9757 Jps
8950 DataNode
9145 SecondaryNameNode
9438 NodeManager
8799 NameNode
9311 ResourceManager&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;Importante que apareça os processos &lt;strong&gt;*DataNode&lt;/strong&gt;&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;SecondaryNameNode&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;NodeManager&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;NameNode&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;ResourceManager&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;configurar-o-memory-heap-da-jvm&quot;&gt;Configurar o Memory Heap da JVM&lt;/h2&gt;

&lt;p&gt;Caso enfrente algum problema com relação ao tamanho do &lt;em&gt;heap&lt;/em&gt; de memória da JVM&lt;/p&gt;

&lt;p&gt;1ª Etapa:&lt;/p&gt;

&lt;p&gt;Adicione esta linha no arquivo /etc/profile:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JVM_ARGS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-Xms1024m -Xmx1024m&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Esta mudança muda o heap de memória do Java para 1024 mb. Por padrão é 128 mb.&lt;/p&gt;

&lt;p&gt;Atualize os índices do arquivo /etc/profile:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; /etc/profile&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;2ª Etapa:&lt;/p&gt;

&lt;p&gt;Adicione ou edite a seguinte variável de ambiente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HADOOP_CLIENT_OPTS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-Xmx1024m &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HADOOP_CLIENT_OPTS&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;3ª Etapa:&lt;/p&gt;

&lt;p&gt;Adicione a seguinte propriedade ao arquivo mapred-site.xml:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;mapred.child.java.opts&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;-Xmx1024m&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Se tudo estiver ok, pronto temos o Apache Hadoop configurado em modo &lt;em&gt;Single Node&lt;/em&gt; ;)&lt;br /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/elephant-crazy.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;O artigo Configuração do Apache Hadoop em Multi Node está disponível no seguinte &lt;a href=&quot;/config-hadoop-multi-node/&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h2&gt;

&lt;p&gt;Material desenvolvido durante o meu Mestrado no Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (&lt;a href=&quot;http://icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;ICMC-USP&lt;/a&gt;). Além disso, faço um agradecimento em especial ao Laboratório de Sistemas Distribuídos e Programação Concorrente (&lt;a href=&quot;http://lasdpc.icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;LaSDPC&lt;/a&gt;), o qual faço parte que me permitiu a criação deste material. Por fim, informo que é permitido livremente a reprodução integral deste material desde que sejam feitas as devidas referências ao autor ;)&lt;/p&gt;

&lt;h2 id=&quot;referências&quot;&gt;Referências&lt;/h2&gt;

&lt;p&gt;[1] Apache Foundation. Hadoop: &lt;strong&gt;&lt;em&gt;Setting up a Single Node Cluster&lt;/em&gt;&lt;/strong&gt;. Acessado em Agosto de 2016. Disponível em: &lt;a href=&quot;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html&quot;&gt;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] Rajesh N. &lt;strong&gt;&lt;em&gt;“Java Heap space Out Of Memory Error” while running a mapreduce program&lt;/em&gt;&lt;/strong&gt;. Acessado em Agosto de 2016. Disponível em:  &lt;a href=&quot;http://stackoverflow.com/questions/30295606/java-heap-space-out-of-memory-error-while-running-a-mapreduce-program&quot;&gt;http://stackoverflow.com/questions/30295606/java-heap-space-out-of-memory-error-while-running-a-mapreduce-program&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 21 Oct 2017 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/config-hadoop-single-node/</link>
        <guid isPermaLink="true">https://v4ires.github.io/config-hadoop-single-node/</guid>
      </item>
    
      <item>
        <title>Configuração do Apache Hadoop em Multi Node - (PT-BR)</title>
        <description>&lt;h2 id=&quot;instalação-do-apache-hadoop-28x-em-modo-multi-node---pt-br&quot;&gt;Instalação do Apache Hadoop 2.8.x em modo Multi Node - (PT-BR)&lt;/h2&gt;

&lt;p&gt;Requisitos iniciais:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;1) Tenha o Java 7+ instalado&lt;/li&gt;
  &lt;li&gt;2) Realize a configuração em modo &lt;a href=&quot;/config-hadoop-single-node/&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;single node&lt;/em&gt;&lt;/a&gt; para todas a máquinas desejadas&lt;/li&gt;
  &lt;li&gt;3) Tenha o servidor SSH devidamente instalado e configurado&lt;/li&gt;
  &lt;li&gt;4) Configure o SSH para o acesso sem senha com todos os endereços de IP das máquinas desejadas incluindo o &lt;em&gt;localhost&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*ps: Este tutorial foi testado com o sistema operacional Ubuntu 16.04 e 14.04. Caso deseje configurar em uma versão mais antiga, recente ou em outro SO, pequenas mudanças podem ocorrer nos procedimentos apresentados.&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;O projeto Apache Hadoop é um &lt;em&gt;software&lt;/em&gt; de código aberto mantido pela Apache Foundation que tem como propósito fornecer uma implementação de código aberto do modelo de programação &lt;em&gt;MapReduce&lt;/em&gt; de forma confiável e escalável. O Hadoop é projetado para ampliar o processamento de um único servidor em milhares de máquinas, onde cada uma das máquinas oferecem poder de processamento e armazenamento local. Esta ferramenta é utilizada para processamento em &lt;em&gt;batch&lt;/em&gt; de grandes volumes de dados (&lt;em&gt;Big Data&lt;/em&gt;). Atualmente, o Apache Hadoop é uma das ferramentas mais conhecidas para processamento distribuído, mas existem outras ferramentas similares que se integram ao Hadoop, como o &lt;strong&gt;Apache Spark&lt;/strong&gt;, &lt;strong&gt;Apache Storm&lt;/strong&gt; e dentre outros.&lt;/p&gt;

&lt;p&gt;*para mais informações a respeito do Apache Hadoop acessem o site &lt;a href=&quot;http://hadoop.apache.org/&quot;&gt;http://hadoop.apache.org/&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;lets-get-started&quot;&gt;Let’s get started&lt;/h3&gt;

&lt;p&gt;Neste tutorial você irá aprender a configurar o Apache Hadoop no modo &lt;em&gt;Multi Node&lt;/em&gt;. Montando um ambiente capaz de executar seus primeiros &lt;em&gt;scripts&lt;/em&gt; em &lt;em&gt;MapReduce&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Primeiramente configure todas as máquinas que deseja montar um cluster Hadoop no modo &lt;em&gt;single node&lt;/em&gt;. Para configurar basta seguir as instruções disponíveis no seguinte &lt;a href=&quot;/config-hadoop-single-node&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Outro ponto importante é a configuração do ssh sem senha entre todas máquinas que você pretende montar o cluster, o que inclui ela mesma (&lt;em&gt;localhost&lt;/em&gt;). Para realizar essa tarefa basta seguir as instruções do tutorial disponibilizado no portal &lt;a href=&quot;https://www.vivaolinux.com.br/dica/SSH-sem-senha/&quot;&gt;Viva o Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Após realizada essa primeira etapa faça as devidas modificações para que o Hadoop funcione em modo &lt;em&gt;cluster&lt;/em&gt;. Para isso esse tutorial foi dividido em três tipos de configurações, nó &lt;em&gt;master&lt;/em&gt;, &lt;em&gt;slaves&lt;/em&gt; e para ambos.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/programming-fire.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h3 id=&quot;para-o-nó-master&quot;&gt;Para o nó Master&lt;/h3&gt;

&lt;p&gt;Para o nó &lt;em&gt;master&lt;/em&gt; basta editar o arquivo de configuração etc/hadoop/hdfs-site.xml:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim hdfs-site.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;No caso do nó &lt;em&gt;master&lt;/em&gt; iremos manter apenas a configuração do &lt;em&gt;namenode&lt;/em&gt;, removendo a propriedade do &lt;em&gt;datanode&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.replication&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
 &lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

 &lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.namenode.name.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;file:/opt/bigdata/hadoop-2.8.1/hadoop_store/hdfs/namenode&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
 &lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Crie o arquivo com os endereços IP’s das máquinas &lt;em&gt;slaves&lt;/em&gt; do Hadoop no diretório etc/hadoop:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# &lt;span class=&quot;nb&quot;&gt;touch &lt;/span&gt;slaves&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione o IP de todas as máquinas &lt;em&gt;slaves&lt;/em&gt; em etc/hadoop/slaves:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# vim slaves&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione os endereços IP’s ou &lt;em&gt;hostname&lt;/em&gt; de cada uma das máquinas slaves:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot; data-lang=&quot;plaintext&quot;&gt;IP_NODE_01
IP_NODE_02
IP_NODE_03
IP_NODE_04
IP_NODE_05
IP_NODE_0N
.
.
.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: as informações deste arquivo devem ser apenas os IP’s ou Hostname das máquinas separadas por quebra de linha (enter)&lt;/p&gt;

&lt;h3 id=&quot;para-os-nós-slaves&quot;&gt;Para os nós Slaves&lt;/h3&gt;

&lt;p&gt;Para os nós &lt;em&gt;slaves&lt;/em&gt; iremos manter a configuração do &lt;em&gt;datanode&lt;/em&gt;, removendo a propriedade &lt;em&gt;namenode&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.replication&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Default block replication.
  The actual number of replications can be specified when the file is created.
  The default is used if replication is not specified in create time.
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;dfs.datanode.data.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;file:/opt/bigdata/hadoop-2.8.1/hadoop_store/hdfs/datanode&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;para-ambos&quot;&gt;Para ambos&lt;/h3&gt;

&lt;p&gt;Para ambas as máquinas tanto &lt;em&gt;master&lt;/em&gt; e &lt;em&gt;slave&lt;/em&gt; iremos manter a configuração do diretório tmp e iremos configurar o IP do nó &lt;em&gt;master&lt;/em&gt; (&lt;em&gt;Namenode&lt;/em&gt;) com a propriedade fs.defaultFS:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;hadoop.tmp.dir&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;/opt/bigdata/hadoop-2.8.1/tmp&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Temporary Directory.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;fs.defaultFS&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;hdfs://IP_MASTER:9000&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Use HDFS as file storage engine&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Edite e adicione as seguintes propriedades ao arquivo yarn-site.xml:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.resourcemanager.hostname&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;frontend&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;description&amp;gt;&lt;/span&gt;The hostname of the RM.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.nodemanager.aux-services&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;mapreduce_shuffle&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;name&amp;gt;&lt;/span&gt;yarn.nodemanager.aux-services.mapreduce.shuffle.class&lt;span class=&quot;nt&quot;&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;org.apache.hadoop.mapred.ShuffleHandler&lt;span class=&quot;nt&quot;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;*ps: a tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;/property&amp;gt;&lt;/code&gt; deve ficar dentro de uma tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;configuration&amp;gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&quot;finalização&quot;&gt;Finalização&lt;/h2&gt;

&lt;p&gt;Após as devidas configurações, logue via ssh na máquina master e formate o &lt;em&gt;namenode&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# hadoop namenode &lt;span class=&quot;nt&quot;&gt;-format&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Inicie o Hadoop e verificar se ele está funcionando em modo cluster:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# start-dfs.sh &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; start-yarn.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Se tudo der certo, verifique os processos Hadoop que estão executando no nó master:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# jps&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Como você está acessando o nó &lt;em&gt;master&lt;/em&gt; deve aparecer para você apenas os seguintes processos:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;5417 Jps
4656 NameNode
5123 ResourceManager
4952 SecondaryNameNode&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Acesse cada um dos nós &lt;em&gt;slaves&lt;/em&gt; e verifique os processos que Hadoop que estão executando:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# jps&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Como você está acessando os nós &lt;em&gt;slave&lt;/em&gt; deve aparecer para você apenas os seguintes processos:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;14372 Jps
13987 DataNode
14168 NodeManager&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Se tudo estiver ok, pronto temos o Apache Hadoop configurado em modo &lt;em&gt;Multi Node&lt;/em&gt; ;)&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/sheldon-fuck.gif&quot; style=&quot;width: 60%;&quot; /&gt;
&lt;/p&gt;

&lt;h2 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h2&gt;

&lt;p&gt;Material desenvolvido durante o meu Mestrado no Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (&lt;a href=&quot;http://icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;ICMC-USP&lt;/a&gt;). Além disso, faço um agradecimento em especial ao Laboratório de Sistemas Distribuídos e Programação Concorrente (&lt;a href=&quot;http://lasdpc.icmc.usp.br/&quot; target=&quot;_blank&quot;&gt;LaSDPC&lt;/a&gt;), o qual faço parte que me permitiu a criação deste material. Por fim, informo que é permitido livremente a reprodução integral deste material desde que sejam feitas as devidas referências ao autor ;)&lt;/p&gt;

&lt;h2 id=&quot;referências&quot;&gt;Referências&lt;/h2&gt;

&lt;p&gt;[1] Apache Foundation. Hadoop: &lt;strong&gt;&lt;em&gt;Setting up a Single Node Cluster&lt;/em&gt;&lt;/strong&gt;. Acessado em Agosto de 2016. Disponível em: &lt;a href=&quot;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html&quot;&gt;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] Apache Foundation. Hadoop: &lt;strong&gt;&lt;em&gt;Hadoop Cluster Setup&lt;/em&gt;&lt;/strong&gt;. Acessado em Outubro de 2016. Disponível em:
&lt;a href=&quot;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/ClusterSetup.html&quot;&gt;http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/ClusterSetup.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[3] Michael G. Noll. Running Hadoop on Ubuntu Linux (Multi-Node Cluster). Acessado em Outubro de 2016. Disponível em: &lt;a href=&quot;http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/&quot;&gt;http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 21 Oct 2017 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/config-hadoop-multi-node/</link>
        <guid isPermaLink="true">https://v4ires.github.io/config-hadoop-multi-node/</guid>
      </item>
    
      <item>
        <title>Configuração do PostgreSQL (Production) - (PT-BR)</title>
        <description>&lt;h2 id=&quot;configuração-do-banco-de-dados-postgresql-production---pt-br&quot;&gt;Configuração do Banco de Dados PostgreSQL (Production) - (PT-BR)&lt;/h2&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;PostgreSQL é um sistema gerenciador de banco de dados objeto relacional (SGBDOR), desenvolvido como projeto de código aberto. Hoje, o PostgreSQL é um dos SGBDs (Sistema Gerenciador de Bancos de Dados) de código aberto mais avançados, contando com diversos recursos. O PostgreSQL é compatível com diversos Sistemas Operacionais, dentre eles, o Linux, Windows e Mac OS. Para mais informações acessem o site &lt;a href=&quot;https://www.postgresql.org&quot;&gt;https://www.postgresql.org&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;lets-get-started&quot;&gt;Let’s get started&lt;/h3&gt;

&lt;p&gt;Neste tutorial você aprenderá a configurar o banco de dados PostgreSQL para uso em produção. Chega de conversa e vamos inciar o tutorial.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/getstart-underwood.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h3 id=&quot;instalação-do-postgresql-9x-no-ubuntu-e-derivados&quot;&gt;Instalação do PostgreSQL 9.x no Ubuntu e derivados&lt;/h3&gt;

&lt;p&gt;Atualize os repositórios:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get update&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Instale o PostgreSQL:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;postgresql postgresql-contrib&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Teste o acesso ao PostgreSQL:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; postgres
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;psql
~# &lt;span class=&quot;se&quot;&gt;\q&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Criar, Deletar e Acessar, uma base de dados:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;createdb mydb
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;dropdb mydb
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;psql mydb&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Alterar a senha do usuário postgres:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; postgres
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;psql &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; postgres &lt;span class=&quot;nt&quot;&gt;-U&lt;/span&gt; postgres psql
~# ALTER USER postgres with PASSWORD &lt;span class=&quot;s1&quot;&gt;'minha_senha'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
~# &lt;span class=&quot;se&quot;&gt;\q&lt;/span&gt;
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;exit&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Reinicie o PostgreSQL:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service postgresql restart&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione o postgres ao grupo sudo:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;gpasswd &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; postgres &lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Alternar para usuário postgres no terminal como superusuário:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;su - postgres&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Crie um novo usuário no postgres:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; postgres createuser &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-P&lt;/span&gt; my_user&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Crie uma base de dados para o novo usuário:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; postgres createdb &lt;span class=&quot;nt&quot;&gt;-O&lt;/span&gt; my_user db_test&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Entre no postgres com o superusuário:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;psql &lt;span class=&quot;nt&quot;&gt;--username&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;postgres &lt;span class=&quot;nt&quot;&gt;--password&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Dê permissão para um usuário específico acessar uma determinada base de dados:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~# GRANT ALL PRIVILEGES ON DATABASE db_test TO my_user&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
~# &lt;span class=&quot;se&quot;&gt;\q&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Entrar no postgres com o novo usuário:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;psql &lt;span class=&quot;nt&quot;&gt;--username&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;my_user &lt;span class=&quot;nt&quot;&gt;--password&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;extra-opcional&quot;&gt;Extra (Opcional)&lt;/h3&gt;

&lt;h4 id=&quot;liberar-acesso-remoto-ao-postgresql&quot;&gt;Liberar acesso remoto ao PostgreSQL&lt;/h4&gt;

&lt;p&gt;Libere o acesso remoto pela rede ao PostgreSQL (não recomendado para uso em produção):&lt;br /&gt;
*substitua o 9.x pelo número de sua versão atual do PostgreSQL&lt;br /&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nano /etc/postgresql/9.x/main/postgresql.conf&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Alterar: &lt;br /&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot; data-lang=&quot;plaintext&quot;&gt;de # listen_address = 'localhost'
para listen_address = '*'&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nano /etc/postgresql/9.x/main/pg_hba.conf&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Adicione a seguinte linha ao final do arquivo:&lt;br /&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot; data-lang=&quot;plaintext&quot;&gt;host all all 0.0.0.0/0 md5&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;A forma mais correta de configurar o acesso externo ao banco de dados é configurar um proxy para acesso ao banco. Dessa maneira o acesso não ficará disponível abertamente na internet.&lt;/p&gt;

&lt;p&gt;Para mais informações recomendo o seguintes links &lt;a href=&quot;https://www.postgresql.org/docs/8.2/static/ssh-tunnels.html&quot;&gt;01&lt;/a&gt; e &lt;a href=&quot;https://support.cloud.engineyard.com/hc/en-us/articles/205408088-Access-Your-Database-Remotely-Through-an-SSH-Tunnel&quot;&gt;02&lt;/a&gt;. Em breve postarei um tutorial ensinando passo a passo como fazer esta configuração.&lt;/p&gt;

&lt;h4 id=&quot;instalando-o-pgadmin&quot;&gt;Instalando o PgAdmin&lt;/h4&gt;

&lt;p&gt;Instale o programa PgAdmin3 para gerenciar o banco de dados com uma interface gráfica:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;pgadmin3 &lt;span class=&quot;nt&quot;&gt;-y&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Para mais informações acessem o &lt;a href=&quot;https://www.postgresql.org/ftp/pgadmin3/&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;considerações-finais&quot;&gt;Considerações Finais&lt;/h3&gt;

&lt;p&gt;Chegamos ao final do tutorial, caso tenha acontecido algum problema favor reportar nos comentários. Caso tudo tenha dado certo chegou a hora de criar suas tabelas e pôr o seu banco de dados no ar. Happy Code :)&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/hasta-la-vista.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h3 id=&quot;update&quot;&gt;Update&lt;/h3&gt;

&lt;p&gt;Foi feito uma pequena correção no tutorial sobre como fazer o acesso remoto ao Banco de Dados, sugestão feita nos comentários do post. Obrigado todos pelo feedback ;)&lt;/p&gt;

&lt;h4 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h4&gt;

&lt;p&gt;É permitido a reprodução integral desse material desde que sejam feitas as devidas referências ao autor ;)&lt;/p&gt;

&lt;h4 id=&quot;referências&quot;&gt;Referências&lt;/h4&gt;

&lt;p&gt;[1] PostgreSQL. &lt;strong&gt;&lt;em&gt;PostgreSQL&lt;/em&gt;&lt;/strong&gt;. Acessado em Fevereiro de 2017. Disponível em: &lt;a href=&quot;https://www.postgresql.org&quot;&gt;https://www.postgresql.org&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[2] PostgreSQL Wikipedia. &lt;strong&gt;&lt;em&gt;PostgreSQL Wiki&lt;/em&gt;&lt;/strong&gt;. Acessado em Fevereiro de 2017. Disponível em: &lt;a href=&quot;https://pt.wikipedia.org/wiki/PostgreSQL&quot;&gt;https://pt.wikipedia.org/wiki/PostgreSQL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[3] Comunidade Brasileira de PostgreSQL. &lt;strong&gt;&lt;em&gt;PostgreSQL Brasil&lt;/em&gt;&lt;/strong&gt;. Acessado em Fevereiro de 2017. Disponível em: &lt;a href=&quot;https://www.postgresql.org.br&quot;&gt;https://www.postgresql.org.br&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 19 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/config-postgresql-prodution/</link>
        <guid isPermaLink="true">https://v4ires.github.io/config-postgresql-prodution/</guid>
      </item>
    
      <item>
        <title>Configuração do Servidor JBoss Wildfly 10 (Production) - (PT-BR)</title>
        <description>&lt;h2 id=&quot;configuração-do-servidor-jboss-wildfly-10-production---pt-br&quot;&gt;Configuração do Servidor JBoss Wildfly 10 (Production) - (PT-BR)&lt;/h2&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;O Jboss Wildfly é um web-container para aplicações em java mantida pela Red Hat. O Wildfly é um dos mais famosos web-containers java do mercado, sendo uma boa alternativa ao Oracle Glassfish. O WildFly, anteriormente conhecido como JBoss AS, ou simplesmente JBoss, é um servidor de aplicativos criado pelo JBoss, agora desenvolvido pela Red Hat. O WildFly é escrito em Java e implementa a especificação Java Platform Enterprise Edition (Java EE). Ele é executado em várias plataformas. WildFly é um software livre e de código aberto, sujeito aos requisitos da licença LGPL, versão 2.1. Em 20 de novembro de 2014, o JBoss Application Server foi renomeado como WildFly. A comunidade JBoss e outros produtos JBoss da Red Hat, como o JBoss Enterprise Application Platform, não foram renomeados. Para mais informações acessem o site &lt;a href=&quot;http://wildfly.org/&quot;&gt;http://wildfly.org/&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;lets-get-started&quot;&gt;Let’s get started&lt;/h4&gt;

&lt;p&gt;Neste tutorial você aprenderá a configurar o servidor Jboss Wildfly 10.x para produção.
Chega de conversa vamos iniciar o tutorial.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/typing-fast.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h4 id=&quot;configurações-iniciais-do-servidor&quot;&gt;Configurações Iniciais do Servidor&lt;/h4&gt;

&lt;p&gt;Instale o Java (Caso já tenha, desconsidere esta etapa):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;add-apt-repository &lt;span class=&quot;nt&quot;&gt;-y&lt;/span&gt; ppa:webupd8team/java &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get update &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo echo &lt;/span&gt;oracle-java8-installer shared/accepted-oracle-license-v1-1 &lt;span class=&quot;k&quot;&gt;select &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt; | &lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; /usr/bin/debconf-set-selections &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;oracle-java8-installer &lt;span class=&quot;nt&quot;&gt;-y&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Faça o download do servidor Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /opt
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;wget http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.zip
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;unzip wildfly-10.0.0.Final.zip
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo rm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; wildfly-10.0.0.Final.zip
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo mv &lt;/span&gt;wildfly-10.0.0.Final/ wildfly/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;configuração-do-servidor-wildfly-10x&quot;&gt;Configuração do Servidor Wildfly 10.x&lt;/h4&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;addgroup wildfly
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;useradd &lt;span class=&quot;nt&quot;&gt;-g&lt;/span&gt; wildfly wildfly&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Mude o dono da pasta do Wildfly recursivamente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo chown&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; wildfly:wildfly /opt/wildfly/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Crie um link simbólico para o Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo ln&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; wildfly /opt/wildfly&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Configure o init.d/ para o Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo cp&lt;/span&gt; /opt/wildfly/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/wildfly
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo chown &lt;/span&gt;root:root /etc/init.d/wildfly
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo chmod &lt;/span&gt;ug+x /etc/init.d/wildfly&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Para dar start e stop no Wildfly pela primeira vez:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; /etc/init.d/wildfly start
~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; /etc/init.d/wildfly stop&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Atualize o Wildfly como serviço:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;update-rc.d wildfly defaults&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;configurando-acesso-externo-ao-servidor&quot;&gt;Configurando acesso externo ao servidor&lt;/h4&gt;

&lt;p&gt;Acesse o diretório:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /opt/wildfly/standalone/configuration/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Edite o arquivo de configuração:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nano standalone.xml&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Substitua as seguintes configurações:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;interface&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;public&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;inet-address&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;${jboss.bind.address:127.0.0.1}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;por:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;interface&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;public&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;any-address/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;E a configuração de acesso ao painel de configurações do Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;interface&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;management&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;inet-address&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;${jboss.bind.address:127.0.0.1}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;por&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;interface&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;management&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;any-address/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;configurando-usuário-administrador&quot;&gt;Configurando usuário administrador&lt;/h4&gt;

&lt;p&gt;Primeiramente finalize o processo do Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service wildfly stop&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Acesse o diretório:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /opt/wildfly/bin&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Execute o script para adicionar um novo usuário:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; ./add-user.sh&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Faça as seguintes instruções:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Digite (a) para Management User
Digite (admin) para Username&lt;/li&gt;
  &lt;li&gt;Are you sure you want to add user ‘admin’ yes/no? (yes)&lt;/li&gt;
  &lt;li&gt;Digite uma senha para password&lt;/li&gt;
  &lt;li&gt;Confirme a senha&lt;/li&gt;
  &lt;li&gt;What groups do you want this user to belong to? (enter)&lt;/li&gt;
  &lt;li&gt;Is this correct yes/no? (2x yes)&lt;/li&gt;
  &lt;li&gt;Digita yes e enter para todas as perguntas&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inicie o Wildfly novamente:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;~&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service wildfly start&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Acesse o IP da máquina :8080 para conferir o acesso ao painel de configuração do Wildfly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;http://localhost:9990 ou http://IP_EXTERNO:9990&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;considerações-finais&quot;&gt;Considerações Finais&lt;/h4&gt;

&lt;p&gt;Chegamos ao final do tutorial, caso tenha acontecido algum problema favor reportar nos comentários. Caso tudo tenha dado certo chegou a hora de “codar” e colocar suas aplicações em produção no Wildfly. Happy Code :)&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;/assets/images/coding.gif&quot; style=&quot;width: 50%;&quot; /&gt;
&lt;/p&gt;

&lt;h4 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h4&gt;

&lt;p&gt;É permitido livremente a reprodução integral desse material desde que sejam feitas as devidas referências ao autor ;)&lt;/p&gt;

&lt;h4 id=&quot;referências&quot;&gt;Referências&lt;/h4&gt;

&lt;p&gt;[1] Jboss Wildfly. &lt;strong&gt;&lt;em&gt;Wildfly&lt;/em&gt;&lt;/strong&gt;. Acessado em Junho de 2016. Disponível em: &lt;a href=&quot;http://wildfly.org/&quot;&gt;http://wildfly.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[2] Jboss Wildfly Wikipedia. &lt;strong&gt;&lt;em&gt;JBoss Wildlfy Wiki&lt;/em&gt;&lt;/strong&gt;. Acessado em Fevereiro de 2017. Disponível em:  &lt;a href=&quot;https://en.wikipedia.org/wiki/WildFly&quot;&gt;https://en.wikipedia.org/wiki/WildFly&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;[3] ForgeZilla Let’s Forge it!. &lt;strong&gt;&lt;em&gt;Installing Wildfly 10 on Debian/Ubuntu&lt;/em&gt;&lt;/strong&gt;. Acessado em Junho de 2016. Disponível em: &lt;a href=&quot;http://forgezilla.com/installing-wildfly-10-on-debianubuntu/&quot;&gt;http://forgezilla.com/installing-wildfly-10-on-debianubuntu/&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/config-wildfly-prodution/</link>
        <guid isPermaLink="true">https://v4ires.github.io/config-wildfly-prodution/</guid>
      </item>
    
      <item>
        <title>Maratona de Programação 2015 - (PT-BR)</title>
        <description>&lt;h2 id=&quot;final-brasileira-maratona-de-programação-2015---pt-br&quot;&gt;Final Brasileira Maratona de Programação 2015 - (PT-BR)&lt;/h2&gt;

&lt;p&gt;Em 2015 eu mais meus parceiros de equipe MyCoffeeSoft (Matheus Pedroza, Thaylon Guedes e Herinson Rodrigues) fomos classificados para a final brasileira da &lt;a href=&quot;http://maratona.ime.usp.br/&quot; target=&quot;_blank&quot;&gt;Maratona de Programação 2015&lt;/a&gt; em São Paulo (SP) para representar o Tocantins em nome da Universidade Federal do Tocantins (&lt;a href=&quot;http://www.uft.edu.br&quot; target=&quot;_blank&quot;&gt;UFT&lt;/a&gt;). A Maratona de Programação ocorreu durante os dias 13 e 14 de novembro de 2015 no Instituto Brasileiro de Tecnologia Avançada (&lt;a href=&quot;http://ibta.edu.br/&quot; target=&quot;_blank&quot;&gt;IBTA&lt;/a&gt;). A participação da equipe MyCoffeeSoft na final nacional foi marcante pois foi a segunda vez que uma equipe do Tocantins representou o estado na final nacional da Maratona de Programação ICPC.&lt;/p&gt;

&lt;h1 id=&quot;o-que-é&quot;&gt;O que é?&lt;/h1&gt;

&lt;p&gt;A Maratona de Programação é um evento da Sociedade Brasileira de Computação (&lt;a href=&quot;http://www.sbc.org.br/&quot; target=&quot;_blank&quot;&gt;SBC&lt;/a&gt;) que existe desde o ano de 1996. A Maratona nasceu das competições regionais classificatórias para as finais mundiais do concurso de programação da ACM, o &lt;a href=&quot;https://icpc.baylor.edu/&quot; target=&quot;_blank&quot;&gt;ACM International Collegiate Programming Contest&lt;/a&gt;, e é parte da regional sul-americana do concurso.  A Maratona de Programação destina-se a alunos de cursos de graduação e início de pós-graduação na área de Computação e afins (Ciência da Computação, Engenharia de Computação, Sistemas de Informação, Matemática, etc). A competição promove nos alunos a criatividade, a capacidade de trabalho em equipe, a busca de novas soluções de software e a habilidade de resolver problemas sob pressão.&lt;/p&gt;

&lt;p&gt;Várias universidades do Brasil desenvolvem concursos locais para escolher os melhores times para participar da Maratona de Programação. Estes times competem na Maratona (e portanto na regional sul-americana) de onde os melhores serão selecionados para participar das Finais Mundiais do evento. Os times são compostos por três alunos, que tentarão resolver durante 5 horas o maior número possível dos 8 ou mais problemas que são entregues no início da competição.&lt;/p&gt;

&lt;h1 id=&quot;fase-regional-uft---to&quot;&gt;Fase Regional (UFT - TO)&lt;/h1&gt;

&lt;p&gt;A primeira fase da Maratona de Programação foi realizada no dia 12 de setembro de 2015 em uma parceria entre a Sociedade Brasileira de Computação (&lt;a href=&quot;http://www.sbc.org.br/&quot; target=&quot;_blank&quot;&gt;SBC&lt;/a&gt;) e a Fundação Carlos Chagas (&lt;a href=&quot;http://www.fcc.org.br/fcc/&quot; target=&quot;_blank&quot;&gt;FCC&lt;/a&gt;). O evento foi organizado na UFT pelo Centro Acadêmico de Ciência da Computação (&lt;a href=&quot;https://www.facebook.com/caccompuft&quot; target=&quot;_blank&quot;&gt;CACCOMP&lt;/a&gt;) em conjunto com a coordenação e professores do curso. Na primeira fase, a sede de Palmas contou com seis times de três diferentes escolas, que foi um feito inédito para o estado do Tocantins.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;/assets/images/equipes-regional-maratona.jpg&quot; style=&quot;width: 70%;&quot; /&gt;&lt;br /&gt;  
&lt;caption&gt;Equipes Fase Regional Maratona de Programação UFT - Palmas (TO).&lt;/caption&gt;
&lt;/p&gt;

&lt;p&gt;Nome das equipes (Fase regional TO):&lt;/p&gt;
&lt;li&gt;MyCoffeSoft (&lt;a href=&quot;http://www.uft.edu.br/&quot; target=&quot;_blank&quot;&gt;UFT&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Me segura que eu vou programar (&lt;a href=&quot;http://www.uft.edu.br/&quot; target=&quot;_blank&quot;&gt;UFT&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Iceberg (&lt;a href=&quot;http://www.uft.edu.br/&quot; target=&quot;_blank&quot;&gt;UFT&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Destemidos (&lt;a href=&quot;http://www.uft.edu.br/&quot; target=&quot;_blank&quot;&gt;UFT&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Computa In Action (&lt;a href=&quot;http://www.unirg.edu.br/&quot; target=&quot;_blank&quot;&gt;UNIRG&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;UlbraPalmas (&lt;a href=&quot;http://ulbra-to.br/&quot; target=&quot;_blank&quot;&gt;ULBRA&lt;/a&gt;)&lt;/li&gt;

&lt;h1 id=&quot;lista-de-problemas-primeira-fase&quot;&gt;Lista de Problemas Primeira Fase&lt;/h1&gt;

&lt;p&gt;Os &lt;a href=&quot;http://maratona.ime.usp.br/hist/2015/primeira-fase/maratona.pdf&quot; target=&quot;_blank&quot;&gt;problemas da competição&lt;/a&gt; foram os seguintes:&lt;/p&gt;
&lt;li&gt;A - Mania de Par - Vinícius Fernandes dos Santos&lt;/li&gt;
&lt;li&gt;B - Bolsa de valores - Vinícius, Bruno, Cláudio&lt;/li&gt;
&lt;li&gt;C - Tri-du - Ricardo Anido&lt;/li&gt;
&lt;li&gt;D - Quebra-cabeça - Ricardo Anido&lt;/li&gt;
&lt;li&gt;E - Espiral - Guilherme Albuquerque Pinto&lt;/li&gt;
&lt;li&gt;F - Fatorial - Vinícius Fernandes dos Santos&lt;/li&gt;
&lt;li&gt;G - Guaridões Curiosos - Stefano Tommasini&lt;/li&gt;
&lt;li&gt;H - Praça do Retângulo - Vinícius Fernandes dos Santos&lt;/li&gt;
&lt;li&gt;I - Ominobox - Davi Duarte Pinheiro&lt;/li&gt;
&lt;li&gt;J - Jogo da Estratégia - Vinícius Fernandes dos Santos&lt;/li&gt;
&lt;li&gt;K - Palíndromo - Vinícius Fernandes dos Santos&lt;/li&gt;
&lt;li&gt;L - Loteria - Bruno Junqueira Adami&lt;/li&gt;

&lt;p&gt;Ao final da competição ganhamos a competição no Tocantins e ficamos classificados na 6° posição da Super sede Brasil. O placar global de todas as sedes pode ser conferido neste &lt;a href=&quot;../other/Score Board Page.html&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;. Clique em ‘Pal’ para ver o placar de Palmas e em ‘BRA’ para ver o placar da sede regional (Palmas, Cuiabá, Porto Velho e Campo Grande).&lt;/p&gt;

&lt;h1 id=&quot;final-nacional-ibta---sp&quot;&gt;Final Nacional (IBTA - SP)&lt;/h1&gt;

&lt;p&gt;Inicialmente não fomos classificados para a final nacional da maratona, mas após o &lt;a href=&quot;http://maratona.ime.usp.br/vagas15.html&quot; target=&quot;_blank&quot;&gt;resultado final&lt;/a&gt; a equipe MyCoffeeSoft foi classificada pelo critério da regra 3 (critério a e c) da Maratona de Programação:&lt;/p&gt;

&lt;p&gt;a) O melhor time da instituição anfitriã;&lt;br /&gt;
b) O melhor time formado apenas por meninas;&lt;br /&gt;
c) Os melhores times dos estados ainda não representados na final: Alagoas, Sergipe, Tocantins e Rondônia.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;/assets/images/equipe-mycoffee.png&quot; style=&quot;width: 70%;&quot; /&gt;&lt;br /&gt;  
&lt;caption&gt;Foto oficial equipe MyCoffeeSoft - São Paulo (SP).&lt;/caption&gt;
&lt;/p&gt;

&lt;p&gt;Após a classificação da equipe estávamos nós na Final Nacional da Maratona de Programação 2015, na competição estavam presentes todas as melhores equipes do país (62 equipes). Ao final, após cinco horas de competição conquistamos o título de melhor equipe da região Norte do país (Amazonas, Pará e Tocantins) na 47° posição no placar geral, como pode ser conferido neste &lt;a href=&quot;../other/Report Page.html&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;/assets/images/premiacao-maratona.jpg&quot; style=&quot;width: 70%;&quot; /&gt;&lt;br /&gt;  
&lt;caption&gt;Foto oficial da premiação como melhor equipe do Norte do país - São Paulo (SP).&lt;/caption&gt;
&lt;/p&gt;

&lt;h1 id=&quot;lista-de-problemas-final-nacional&quot;&gt;Lista de Problemas Final Nacional&lt;/h1&gt;

&lt;p&gt;Os &lt;a href=&quot;http://maratona.ime.usp.br/hist/2015/resultados/contest_onesided.pdf&quot; target=&quot;_blank&quot;&gt;problemas da competição&lt;/a&gt; foram os seguintes:&lt;/p&gt;

&lt;li&gt;A - At most twice - Pablo Ariel Heiber&lt;/li&gt;
&lt;li&gt;B - Blood groups - Guilherme Albuquerque Pinto&lt;/li&gt;
&lt;li&gt;C - Cake cut - Pablo Ariel Heiber&lt;/li&gt;
&lt;li&gt;D - D as in Daedalus - Guilherme Albuquerque Pinto&lt;/li&gt;
&lt;li&gt;E - Exposing Corruption - Walter Erquínio Pezo&lt;/li&gt;
&lt;li&gt;F - Fence the vegetables fail - Pablo Ariel Heiber&lt;/li&gt;
&lt;li&gt;G - Galaxy taxes - Rafael Armando Garcia Gomez&lt;/li&gt;
&lt;li&gt;H - Height map - Pablo Ariel Heiber&lt;/li&gt;
&lt;li&gt;I - Identifying tea - Inés Kereki&lt;/li&gt;
&lt;li&gt;J - Just a bit sorted - Jorge Enrique Moreira Broche&lt;/li&gt;
&lt;li&gt;K - Keep it energized - Fidel I. Schaposnik Massolo&lt;/li&gt;

&lt;h1 id=&quot;experiência&quot;&gt;Experiência&lt;/h1&gt;

&lt;p&gt;A experiência de participar da etapa nacional da Maratona de Programação é muito gratificante, pois proporciona aos participantes uma competição saudável que agrega novos conhecimentos, vivências e amizades. O evento proporcionou momentos de networking com as empresas patrocinadoras dentre elas a &lt;a href=&quot;http://www.b2wdigital.com/&quot; target=&quot;_blank&quot;&gt;B2W&lt;/a&gt; e o &lt;a href=&quot;https://www.facebook.com&quot; target=&quot;_blank&quot;&gt;Facebook&lt;/a&gt;. Durante esse momento com as empresas foi apresentado diversos assuntos interessantes como a utilização do &lt;a href=&quot;https://en.wikipedia.org/wiki/Virtual_reality&quot; target=&quot;_blank&quot;&gt;Virtual Reality&lt;/a&gt; (VR) e técnicas de inteligência artificial e aprendizagem de máquina aplicada a sistemas de e-commerce.
Abaixo você pode conferir um pequeno vídeo com um breve resumo de como foi a Maratona de Programação e as nossas rápidas aventuras na cidade de São Paulo.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p class=&quot;iframe-container&quot; style=&quot;text-align: center&quot;&gt;
  &lt;iframe class=&quot;responsive-iframe&quot; src=&quot;https://www.youtube.com/embed/wXBDoX4PZj4&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h1 id=&quot;referências&quot;&gt;Referências&lt;/h1&gt;

&lt;p&gt;[1] Maratona de Programação. IME-USP. Disponível em: &lt;a href=&quot;http://maratona.ime.usp.br/&quot; target=&quot;_blank&quot;&gt;http://maratona.ime.usp.br/&lt;/a&gt;. Acesso em: 06, mar. 2016.&lt;/p&gt;
</description>
        <pubDate>Sun, 06 Mar 2016 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/maratona-de-programacao-2015/</link>
        <guid isPermaLink="true">https://v4ires.github.io/maratona-de-programacao-2015/</guid>
      </item>
    
      <item>
        <title>Minicurso Controle de versão com Git e Github - (PT-BR)</title>
        <description>&lt;h2 id=&quot;minicurso-controle-de-versão-com-git-e-github---pt-br&quot;&gt;Minicurso Controle de versão com Git e Github - (PT-BR)&lt;/h2&gt;

&lt;p&gt;Nos dias 3, 4 e 5 de Novembro aconteceu a VIII Semana Acadêmica de Ciência da Computação na &lt;a href=&quot;http://www.uft.edu.br&quot;&gt;UFT&lt;/a&gt; onde tive a oportunidade junto ao meu amigo &lt;b&gt;Herinson Rodrigues&lt;/b&gt; &lt;a href=&quot;https://www.github.com.br/herodrigues&quot;&gt;@herodrigues&lt;/a&gt; de montar um minicurso com tema “Controle de Versão com Git e Github”.
No primeiro dia ensinamos diversas maneiras de instalação do GIT e ferramentas de GUI nas diversas plataformas existentes no mercado como Windows, Linux e OSX.
Abordamos durante os três dias do evento uma introdução ao controle de versão e aos comandos básicos do git como &lt;b&gt;init&lt;/b&gt;, &lt;b&gt;status&lt;/b&gt;, &lt;b&gt;commit&lt;/b&gt;, &lt;b&gt;clone&lt;/b&gt;, &lt;b&gt;add&lt;/b&gt;, &lt;b&gt;rm&lt;/b&gt;, &lt;b&gt;pull&lt;/b&gt; e &lt;b&gt;push&lt;/b&gt; além de comandos avançados como &lt;b&gt;branch&lt;/b&gt;, &lt;b&gt;checkout&lt;/b&gt;, &lt;b&gt;merge&lt;/b&gt;, &lt;b&gt;diff&lt;/b&gt;, &lt;b&gt;remote&lt;/b&gt;, &lt;b&gt;tag&lt;/b&gt; dentre outros.
No último dia criamos um projeto simples colaborativo onde todos contribuiriam e colocaram em prática os comandos ensinados no minicurso &lt;i class=&quot;em em-grimacing&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;
  &lt;img src=&quot;https://raw.githubusercontent.com/v4ires/secompuft/gh-pages/img/secomp_logo_decription.png&quot; style=&quot;max-width: 100%;&quot; /&gt;&lt;br /&gt;
  &lt;a href=&quot;http://v4ires.github.io/secompuft/&quot; target=&quot;_blank&quot;&gt;Link&lt;/a&gt; para o site VIII Semana Acadêmica de Ciência da Computação - UFT
&lt;/p&gt;

&lt;p&gt;O minicurso bastante proveitoso, pois muitos dos presentes nunca tiveram um contato com controle de versão ou com o Git e o Github!&lt;/p&gt;

&lt;p&gt;No geral o planejamento e execução do minicurso um grande aprendizado, pois foi a minha primeira oportunidade de ministrar um curso &lt;i class=&quot;em em-sunglasses&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;/assets/images/git-github-photo.jpg&quot; style=&quot;max-width: 100%;&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;Foto da galera reunida no final do minicurso &lt;i class=&quot;em em-full_moon_with_face&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;Segue abaixo os slides apresentados no minicurso, por fins didáticos e de aprendizado utilizei a ferramenta de desenvolvimento de apresentações em HTML5, CSS e JS o &lt;a href=&quot;http://lab.hakim.se/reveal-js/&quot;&gt;RevealJS&lt;/a&gt;. A apresentação está hospedada no &lt;a href=&quot;https://github.com/viniciusaires/minicurso-controle-de-versao-com-git-github&quot;&gt;Github&lt;/a&gt;, lá vocês poderão acompanhar o histórico dos commit’s e também contribuírem com o projeto &lt;i class=&quot;em em---1&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div class=&quot;iframe-container&quot;&gt;
  &lt;iframe class=&quot;responsive-iframe&quot; src=&quot;https://viniciusaires.dev/controle-de-versao-com-git-github-conceitos-basicos&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Acesse o &lt;a href=&quot;https://viniciusaires.dev/controle-de-versao-com-git-github-conceitos-basicos&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt; para ver a apresentação em tela cheia &lt;i class=&quot;em em-smile&quot;&gt;&lt;/i&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/minicurso-controle-de-versao-com-git-e-github/</link>
        <guid isPermaLink="true">https://v4ires.github.io/minicurso-controle-de-versao-com-git-e-github/</guid>
      </item>
    
      <item>
        <title>Mas afinal de contas o que é o Coding Dojo? - (PT-BR)</title>
        <description>&lt;h2 id=&quot;mas-afinal-de-contas-o-que-é-o-coding-dojo---pt-br&quot;&gt;Mas afinal de contas o que é o Coding Dojo? - (PT-BR)&lt;/h2&gt;

&lt;p&gt;A palavra DOJO, em uma tradução literal do japonês, significa “lugar do caminho” e é originalmente usada para designar um espaço de meditação dos monges budistas. Em uma tradução livre dojo significa “lugar onde se estuda a vida”, mas hoje em dia o termo é mais conhecido como lugar onde se pratica artes marciais em uma sala dentro de uma academia com o chão coberto de tapetes.&lt;/p&gt;

&lt;h1 id=&quot;como-funciona-o-coding-dojo&quot;&gt;Como funciona o Coding Dojo?&lt;/h1&gt;

&lt;p&gt;O dojo não é um local para exibicionismo ou competição. O principal objetivo do Coding Dojo é a prática e troca de conhecimento entre os participantes em qualquer nível de conhecimento. Acontece muito de um programador ter bom conhecimento de uma linguagem e um conhecimento deficiente de outra, por isso é proposto à realização do Dojo, para ensinar através do compartilhamento de ideias e conhecimentos.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dojoto.xyz/mas-afinal-de-contas-o-que-e-o-coding-dojo.html&quot;&gt;&lt;u&gt;Leia mais...&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 01 Jan 2016 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/mas-afinal-de-contas-o-que-e-o-coding-dojo/</link>
        <guid isPermaLink="true">https://v4ires.github.io/mas-afinal-de-contas-o-que-e-o-coding-dojo/</guid>
      </item>
    
      <item>
        <title>Hello World - (PT-BR)</title>
        <description>&lt;h2 id=&quot;hello-world---pt-br&quot;&gt;Hello World - (PT-BR)&lt;/h2&gt;

&lt;p&gt;Olá Mundo, aqui no meu blog você irá encontrar informações sobre meus projetos, tutoriais e artigos sobre desenvolvimento de uma forma prática e convidativa!&lt;/p&gt;
</description>
        <pubDate>Thu, 31 Dec 2015 00:00:00 +0000</pubDate>
        <link>https://v4ires.github.io/hello-world/</link>
        <guid isPermaLink="true">https://v4ires.github.io/hello-world/</guid>
      </item>
    
  </channel>
</rss>
