Como instalar o Hadoop?

25

Estou tentando instalar o Hadoop na versão Ubuntu 12.04. Seguindo as instruções de link , instalei java-6-openjdk do software do Ubuntu- Centro. Eu configurei java_home em .bashrc . Também defina java_home no Hadoop conf/env.sh . Ao formatar o namenode, estou recebendo o seguinte erro:

usr/lib/jvm/java-6-openjdk/bin/java no such file or directory.

Obrigado. Mas é um sistema operacional de 64 bits.

    
por Anitha 31.05.2012 / 06:36

6 respostas

39

Os guias que eu segui quando tinha 12.04 foram:

Eu realmente me opus ao MyLearning porque a primeira coisa que recomendei foi o Oracle Java 7 em vez do OpenJDK 7, mas eu tive alguns problemas com o OpenJDK 7 ao tentar fazer isso, então tive que usar o Oracle.

O guia é principalmente direto e aqui está:

  1. Instalar o Java

    sudo add-apt-repository ppa:webupd8team/java  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install oracle-java7-installer  
    
  2. Criar usuário do Hadoop

    sudo addgroup hadoop  
    sudo adduser --ingroup hadoop hduser
    

    Onde hduser é o usuário do Hadoop que você deseja ter.

  3. Configurando o SSH

    su - hduser   
    ssh-keygen -t rsa -P ""
    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    

    Para ter certeza de que a instalação do SSH foi bem, você pode abrir um novo terminal e tentar criar a sessão ssh usando hduser pelo seguinte comando:

    ssh localhost
    

    reinstale o ssh se o host local não se conectar (talvez seja necessário adicionar hduser ao sudo conforme a etapa abaixo)

    sudo apt-get install openssh-server
    
  4. Editar Sudoers

    sudo visudo
    
  5. Adicione no final a linha para adicionar o hduser aos sudoers

    hduser ALL=(ALL:ALL) ALL
    

    Para salvar pressione CTRL + X , digite Y e pressione ENTER

  6. Desativar o IPv6

    sudo gedit /etc/sysctl.conf
    

    ou

    sudo nano /etc/sysctl.conf
    

    Copie as seguintes linhas no final do arquivo:

    #disable ipv6  
    net.ipv6.conf.all.disable_ipv6 = 1  
    net.ipv6.conf.default.disable_ipv6 = 1   
    net.ipv6.conf.lo.disable_ipv6 = 1  
    

    Se você enfrentar um problema dizendo que você não tem permissões, basta executar o comando anterior com a conta root (no caso, sudo não é suficiente. Para mim, foi)

  7. Agora reinicie.

    Você também pode fazer sudo sysctl -p , mas eu reinicializo.

    Após a reinicialização, verifique se o IPv6 está desativado:

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    

    ele deve dizer 1 . Se diz 0 , você perdeu alguma coisa.

  8. Instalando o Hadoop

    Existem várias maneiras de fazer isso, o que o Guia sugere é fazer o download do site do Apache Hadoop e descompacte o arquivo na sua pasta hduser home. Renomeie a pasta extraída para hadoop .

    A outra maneira é usar um PPA que foi testado para 12.04:

    sudo add-apt-repository ppa:hadoop-ubuntu/stable  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install hadoop  
    

    NOTA: O PPA pode funcionar para alguns e para outros não. O que eu tentei foi baixar do site oficial porque eu não sabia sobre o PPA.

  9. Atualizar $HOME/.bashrc

    Você precisará atualizar o .bashrc para hduser (e para cada usuário que você precisa administrar o Hadoop). Para abrir o arquivo .bashrc , você precisará abri-lo como root:

    sudo gedit /home/hduser/.bashrc  
    

    ou

    sudo nano /home/hduser/.bashrc  
    

    Em seguida, você adicionará as seguintes configurações no final de .bashrc file

    # Set Hadoop-related environment variables   
    export HADOOP_HOME=/home/hduser/hadoop  
    
    # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)'
    export JAVA_HOME=/usr/lib/jvm/java-7-oracle  
    

    Agora, se você tiver o OpenJDK7, pareceria algo assim:

    export JAVA_HOME=/usr/lib/java-7-openjdk-amd64  
    

    A coisa a observar aqui é a pasta onde o Java reside com a versão AMD64. Se o acima não funcionar, você pode tentar procurar nessa pasta específica ou configurar o Java que será utilizado com:

    sudo update-alternatives --config java  
    

    Agora, para um alias útil:

    # Some convenient aliases and functions for running Hadoop-related commands  
    unalias fs &> /dev/null   
    alias fs="hadoop fs"    
    unalias hls &> /dev/null  
    alias hls="fs -ls"  
    
    # Add Hadoop bin/ directory to PATH  
    export PATH=$PATH:$HADOOP_HOME/bin  
    
  10. Configurando o Hadoop

    A seguir estão os arquivos de configuração que podemos usar para fazer a configuração apropriada. Alguns dos arquivos que você usará com o Hadoop são (Mais informações em este site ):

    start-dfs.sh - Inicia os daemons DFS do Hadoop, o namenode e os datanodes. Use isto antes de start-mapred.sh

    stop-dfs.sh - Pára os daemons do Hadoop DFS.

    start-mapred.sh - Inicia os daemons Mapear / Reduzir do Hadoop, o jobtracker e os tasktrackers.

    stop-mapred.sh - Pára os daemons Mapear / Reduzir do Hadoop.

    start-all.sh - Inicia todos os daemons do Hadoop, o namenode, datanodes, o jobtracker e os tasktrackers. Descontinuada; use start-dfs.sh e depois start-mapred.sh

    stop-all.sh - Pára todos os daemons do Hadoop. Descontinuada; use stop-mapred.sh e depois stop-dfs.sh

    Mas antes de começarmos a usá-los, precisamos modificar vários arquivos na pasta /conf .

    hadoop-env.sh

    Procure o arquivo hadoop-env.sh , precisamos apenas atualizar a variável JAVA_HOME neste arquivo:

    sudo gedit /home/hduser/hadoop/conf/hadoop-env.sh
    

    ou

    sudo nano /home/hduser/hadoop/conf/hadoop-env.sh
    

    ou nas versões mais recentes será em

    sudo nano /etc/hadoop/conf.empty/hadoop-env.sh
    

    ou

    sudo nano /etc/hadoop/hadoop-env.sh
    

    Em seguida, altere a seguinte linha:

    # export JAVA_HOME=/usr/lib/j2sdk1.5-sun
    

    Para

    export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    

    Nota: se você obtiver Error: JAVA_HOME is not set Erro ao iniciar os serviços, esqueceu de descomentar a linha anterior (apenas remova #).

    core-site.xml

    Agora, precisamos criar um diretório temporário para a estrutura do Hadoop. Se você precisar deste ambiente para testes ou um protótipo rápido (por exemplo, desenvolver programas de hadoop simples para seu teste pessoal ...), sugiro criar essa pasta no diretório /home/hduser/ , caso contrário, você deve criar essa pasta em um local compartilhado pasta compartilhada (como / usr / local ...) mas você pode enfrentar alguns problemas de segurança. Mas, para superar as exceções que podem ser causadas pela segurança (como java.io.IOException), criei a pasta tmp no espaço hduser.

    Para criar esta pasta, digite o seguinte comando:

    sudo mkdir /home/hduser/tmp   
    

    Observe que, se você quiser criar outro usuário administrador (por exemplo, hduser2 no grupo hadoop), conceda a ele permissão de leitura e gravação nesta pasta usando os seguintes comandos:

    sudo chown hduser:hadoop /home/hduser/tmp  
    sudo chmod 755 /home/hduser/tmp  
    

    Agora, podemos abrir hadoop/conf/core-site.xml para editar a entrada hadoop.tmp.dir. Podemos abrir o core-site.xml usando o editor de texto:

    sudo gedit /home/hduser/etc/hadoop/core-site.xml  
    

    ou

    nano /home/hduser/etc/hadoop/core-site.xml
    

    Em seguida, adicione as seguintes configurações entre <configure> xml elements :

    <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/hduser/tmp</value>
      <description>A base for other temporary directories.</description>
    </property>
    
    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:54310</value>
      <description>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.</description>
    </property>
    

    Agora edite mapred-site.xml

    <property>
      <name>mapred.job.tracker</name>
      <value>localhost:54311</value>
      <description>The host and port that the MapReduce job tracker runs
      at.  If "local", then jobs are run in-process as a single map
      and reduce task.
      </description>
    </property>
    

    Agora edite hdfs-site.xml

    <property>
      <name>dfs.replication</name>
      <value>1</value>
      <description>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.
      </description>
    </property> 
    
  11. Formatando NameNode

    Agora você pode começar a trabalhar no Node. Primeiro formato:

    ~/hduser/hadoop/bin/hadoop namenode -format
    

    ou

    ./home/hduser/hadoop/bin/hadoop namenode -format
    

    Você deve formatar o NameNode no seu HDFS. Você não deve fazer este passo quando o sistema estiver em execução. Geralmente é feito uma vez na primeira vez da sua instalação.

  12. Iniciando o cluster do Hadoop

    Você precisará navegar para o diretório hadoop / bin e executar o script ./start-all.sh .

    cd ~/hduser/hadoop/bin/  
    start-all.sh  
    

    Se você tiver uma versão diferente da mostrada nos guias (o que você provavelmente terá ao fazer isso com o PPA ou uma versão mais recente), tente desta forma:

    cd ~/hduser/hadoop/bin/   
    start-dfs.sh  
    start-mapred.sh   
    

    Isso iniciará um Namenode, Datanode, Jobtracker e um Tasktracker em sua máquina.

  13. Verificando se o Hadoop está sendo executado

    Existe uma boa ferramenta chamada jps . Você pode usá-lo para garantir que todos os serviços estejam ativos. No seu tipo de pasta hadoop bin:

    jps
    

    Ele deve mostrar todos os processos relacionados ao Hadoop.

    NOTA: Como isso foi feito há cerca de 6 meses, para mim, se alguma parte não estiver funcionando, avise-me.

Hadoop usando o Juju (um feitiço Juju para o Hadoop)

Extraído de Encantador do Hadoop

Suponho que o seguinte já está configurado:

  • Você tem um servidor com o Juju já definido
  • Você tem acesso ao servidor (local ou remotamente)
  • Você tem o Juju configurado e pronto para começar a adicionar os encantos
  • Você está usando 12.04 (Isso é porque eu testei tudo isso com 12.04)
  • Você já configurou ~/.juju/environments.yaml com as informações sobre o servidor que você usará incluindo a origem do PPA.

Agora, siga estas etapas para ter um serviço do Hadoop em execução:

  1. Bootstrap o ambiente para o Hadoop

    juju bootstrap
    

    Aguarde até que termine e verifique se está se conectando corretamente:

    juju status
    
  2. Implantar o Hadoop (mestre e escravo)

    juju deploy --constraints="instance-type=m1.large" hadoop hadoop-master   
    
    juju deploy --constraints="instance-type=m1.medium" -n 5 hadoop hadoop-slave
    
  3. Criar relações

    juju add-relation hadoop-master:namenode hadoop-slave:datanode  
    
    juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
    
  4. Exponha o Hadoop (como você já implementou e criou relações, o serviço deve estar em execução)

    juju expose hadoop-master
    

    E verifique o status para ver se está funcionando corretamente:

    juju status hadoop-master
    

Até agora você tem um Hadoop em execução. Há muitas outras coisas que você pode fazer que podem ser encontradas no link fornecido ou no Juju Charm for Hadoop p>

Para os atuais JuJu Charms (Configurações, Guia passo a passo e mais), você pode visitar: JuJu Charms e criar seu próprio ambiente JuJu e Veja como cada arquivo é configurado e como cada serviço se conecta.

    
por Luis Alvarado 09.04.2013 / 18:39
6

Instalei com êxito o Hadoop definindo o caminho de JAVA_HOME as usr/lib/jvm/java-6-openjdk-amd64 .

    
por Anitha 02.06.2012 / 10:54
3

Derivado da resposta de @Luis Alvarado, aqui está a minha versão para o Ubuntu 14.04 e o Hadoop 2.5.1

Em resumo

  1. Instalar o Java
  2. Prepare um usuário executivo para o Hadoop hduser
  3. Mude para hduser a partir de agora
  4. Permitir que hduser seja remoto via ssh com frase de passagem
  5. Desativar o IPv6
  6. Download e configuração do pacote do Hadoop
  7. Preparar o caminho do sistema $ HADOOP_HOME e $ JAVA_HOME
  8. Configurar os serviços do Hadoop
  9. Iniciar os serviços do Hadoop

Concluído. Boa sorte!

Etapas de detalhes

Instalar o Java

Faça o download e instale

$ sudo add-apt-repository ppa:webupd8team/java    
$ sudo apt-get update && sudo apt-get upgrade    
$ sudo apt-get install oracle-java7-installer

Verifique se você tem o Java7 instalado

$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java

devemos ter java como /usr/lib/jvm/java-7-oracle/jre/bin/java

Prepare um usuário executivo para o Hadoop hduser

Crie o usuário hduser no grupo hadoop

$ sudo addgroup hadoop  
$ sudo adduser --ingroup hadoop hduser

Conceda hduser ao privilégio sudo

Editar sudo

$ sudo visudo

Adicione ao final esta linha

hduser ALL=(ALL:ALL) ALL

Mude para hduser a partir de agora

$ su - hduser

Permitir que hduser seja remoto via ssh com frase de passagem

Instalar o openssh

$ sudo apt-get install openssh-server

Gerar chave pública / privada RSA para conexão SSH; a senha está vazia como parameter -P ""

$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

Certifique-se de que hduser pode ssh remoto localmente sem uma senha

$ ssh localhost

Desativar IPv6

Edite o arquivo de configuração

$ sudo nano /etc/sysctl.conf

Copie para o final

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1   
net.ipv6.conf.lo.disable_ipv6 = 1

Verifique se o IPv6 está desativado por uma reinicialização ou ligue para

$ sudo sysctl -p 

Ligue para

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Deve dizer 1, o que significa OK ^^

Download e configuração do pacote Hadoop

Faça o download dos pacotes do Hadoop 2.5.1 do site do Apache Hadoop

O URL direto para este pacote é este link

http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz

Então, vamos fazer o download para a pasta base do hduser , extraí-lo e renomeá-lo para hadoop

$ wget http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
$ tar -xvzf hadoop-2.5.1.tar.gz
$ mv hadoop-2.5.1 hadoop

Verifique se o Hadoop está armazenado em hduser home

$ ls /home/hduser/hadoop

Prepara o caminho do sistema $ HADOOP_HOME e $ JAVA_HOME

Edite o arquivo .bashrc do hduser

$ nano .bashrc

Coloque nos valores finais de $HADOOP_HOME e $JAVA_HOME

# Set Hadoop-related environment variables   
export HADOOP_HOME=/home/hduser/hadoop  

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

Adicione as pastas Hadoop binary ao sistema $PATH

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

Abra um novo terminal, efetue login como hduser e verifique se você tem $ HADOOP_HOME com os comandos disponíveis

$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh

Devemos ver o caminho completo desses nomes.

Serviços do Config Hadoop

Cada componente no Hadoop é configurado usando um arquivo XML.

  • As propriedades comuns entram em core-site.xml

  • As propriedades do
  • HDFS vão em hdfs-site.xml

  • As propriedades do MapReduce entram em mapred-site.xml

Esses arquivos estão todos localizados na pasta $ HADOOP_HOME / etc / hadoop

Defina, novamente, JAVA_HOME em hadoop-env.sh editando a linha

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Defina o Hadoop temp folder e file system name em core-site.xml em

<configuration>
  ...
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hduser/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
    <description>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.</description>
  </property>
  ...
</configuration>

Precisamos preparar este temp folder conforme configurado em /home/hduser/tmp

$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp

Defina file system block replication em hdfs-site.xml

<configuration>
  ...
  <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>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.
    </description>
  </property>
  ...
</configuration>

Defina map-reduce job em mapred-site.xml

<configuration>
  ...
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:54311</value>
    <description>The host and port that the MapReduce job tracker runs
    at.  If "local", then jobs are run in-process as a single map
    and reduce task.
    </description>
  </property>
  ...
</configuration>

Formatar name node

$ hdfs namenode -format

Iniciar o serviço do Hadoop

Ligue

$ start-dfs.sh && start-yarn.sh

esses dois comandos estão localizados em $ HADOOP_HOME / sbin que adicionamos ao sistema $ PATH antes.

Verifique se os serviços do Hadoop foram iniciados corretamente

$ jps

devemos ver

    
por Nam G VU 06.11.2014 / 03:44
1

Para poder instalar sun-java com o comando apt-get , você precisa adicionar uma linha a um arquivo chamado sources.list . Este arquivo pode ser encontrado em /etc/apt/sources.list .

Abra o arquivo usando este comando:

sudo nano /etc/apt/sources.list

Então, no final de (parte inferior) desse arquivo, você copia / cola a linha:

deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

Agora pressione Ctrl + X para sair, e y para salvar.

Agora digite o comando:

sudo apt-get update 

E quando isso for feito, você poderá executar com êxito o comando:

sudo apt-get install sun-java6-jdk
    
por Daniel Adeniji 19.06.2012 / 11:38
0

Para um tutorial mais atualizado (não tenho certeza sobre as diferenças), veja os tutoriais em vídeo hadoop . Eles fornecem vídeo e os comandos reais para instalar por baixo. Além disso, se você enviar um e-mail ao escritor, ele ficará muito feliz em responder e ajudá-lo se você ficar preso a alguma coisa.

Estas instruções são muito semelhantes às que o @Luis respondeu.

    
por planty182 04.09.2013 / 14:51
0

Siga estes passos aqui ... uma explicação muito legal e simples, com todas as soluções de problemas possíveis. até mesmo um iniciante como eu não vai ter nenhum problema. os créditos vão para o link .

    
por Miller 05.07.2015 / 13:06

Tags