Derivado de la respuesta de @Luis Alvarado , aquí está mi versión para Ubuntu 14.04 y Hadoop 2.5.1
En breve
- Instalar Java
- Prepare un usuario ejecutivo para Hadoop
hduser
- Cambiar a
hduser
partir de ahora
- Permitir
hduser
a distancia a través de ssh con pass-frase-less
- Deshabilitar IPv6
- Descargue y configure el paquete Hadoop
- Prepare la ruta del sistema $ HADOOP_HOME y $ JAVA_HOME
- Configurar los servicios de Hadoop
- Iniciar los servicios de Hadoop
Hecho. ¡Buena suerte!
Pasos detallados
Instalar Java
Descargar e instalar
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install oracle-java7-installer
Asegúrese de tener instalado Java7
$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java
deberíamos java
señalar/usr/lib/jvm/java-7-oracle/jre/bin/java
Prepare un usuario ejecutivo para Hadoophduser
Crear usuario hduser
en grupohadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Conceder hduser
el privilegio de sudo
Editar sudo
$ sudo visudo
Agregue al final esta línea
hduser ALL=(ALL:ALL) ALL
Cambiar a hduser
partir de ahora
$ su - hduser
Permitir hduser
a distancia a través de ssh con pass-frase-less
Instalar openssh
$ sudo apt-get install openssh-server
Generar clave pública / privada RSA para conexión SSH; la frase de contraseña está vacía comoparameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Asegúrese de que hduser
puede ssh remoto localmente sin una contraseña
$ ssh localhost
Deshabilitar IPv6
Edite el archivo de configuración
$ sudo nano /etc/sysctl.conf
Copia hasta el final
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Asegúrese de que IPv6 esté apagado mediante un reinicio o una llamada
$ sudo sysctl -p
Luego llame
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Debería decir 1, que significa OK ^^
Descargue y configure el paquete Hadoop
Descargue los paquetes de Hadoop 2.5.1 del sitio Apache Hadoop
La URL directa para este paquete es este enlace
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
Así que vamos a descargar a hduser
la carpeta de inicio de la página, extraerla y cambiarle el nombre ahadoop
$ 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
Asegúrese de que tengamos Hadoop almacenado en hduser
casa
$ ls /home/hduser/hadoop
Prepare la ruta del sistema $ HADOOP_HOME y $ JAVA_HOME
Editar hduser
el archivo .bashrc
$ nano .bashrc
Poner al final los valores para $HADOOP_HOME
y$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
Agregue las binary
carpetas de Hadoop al sistema$PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Abra una nueva terminal, inicie sesión como hduser
y asegúrese de tener $ HADOOP_HOME con los comandos disponibles
$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh
Deberíamos ver la ruta completa de esos nombres.
Configurar los servicios de Hadoop
Cada componente en Hadoop se configura mediante un archivo XML.
Las propiedades comunes van en core-site.xml
Las propiedades de HDFS van en hdfs-site.xml
Las propiedades de MapReduce van en mapred-site.xml
Todos estos archivos están ubicados en la carpeta $ HADOOP_HOME / etc / hadoop
Defina, nuevamente, JAVA_HOME adentro hadoop-env.sh
editando la línea
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Defina Hadoop temp folder
y file system
nombre en core-site.xml en
<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>
Necesitamos preparar esto temp folder
como está configurado en/home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Definir file system
's block replication
en 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>
Definir map-reduce job
en 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>
Formato name node
$ hdfs namenode -format
Iniciar el servicio de Hadoop
Llamada
$ start-dfs.sh && start-yarn.sh
estos dos comandos se encuentran en $ HADOOP_HOME / sbin que hemos agregado al sistema $ PATH antes.
Asegúrese de que los servicios de Hadoop se inicien correctamente
$ jps
deberíamos ver