Saltar al contenido

Cómo instalar Hadoop en modo Stand-Alone en Ubuntu 18.04

marzo 4, 2020

 

Introducción

Hadoop es un marco de programación basado en Java que soporta el procesamiento y almacenamiento de datos extremadamente grandes en un clúster de máquinas de bajo costo. Fue el primer proyecto de código abierto importante en el campo de juego de datos grande y está patrocinado por la Fundación de Software Apache.

Hadoop se compone de cuatro capas principales:

  • Hadoop común es la colección de utilidades y bibliotecas que soportan otros módulos de Hadoop.
  • HDFS, que significa Sistema de archivos distribuido Hadoop, es responsable de la persistencia de los datos en el disco.
  • hilado, corto para otro negociador de recursos, es el “sistema operativo” para HDFS.
  • MapReduce es el modelo de procesamiento original para racimos de Hadoop. Se distribuye el trabajo dentro del clúster o mapa, a continuación, organiza y reduce los resultados de los nodos en una respuesta a una consulta. Muchos otros modelos de procesamiento están disponibles para la versión 3.x de Hadoop. racimos

Hadoop son relativamente complejos de configurar, por lo que el proyecto incluye un modo autónomo, que es adecuado para aprender sobre Hadoop, realizando operaciones simples, y la depuración.

En este tutorial, vamos a instalar Hadoop en modo autónomo y ejecutar uno de los programas de MapReduce Ejemplo Ejemplo Incluye para verificar la instalación.

Requisitos previos

Para seguir este tutorial, necesitará:

  • Un servidor de Ubuntu 18.04 con un usuario no root con privilegios sudo: Se puede obtener más información sobre cómo configurar un usuario con estos privilegios en nuestra configuración inicial del servidor con Ubuntu 18,04 guía.

Una vez que haya completado este requisito previo, ya está listo para instalar Hadoop y sus dependencias.

Antes de empezar, es posible que también le gustaría echar un vistazo a una introducción a los conceptos y terminología Big Data o Una introducción a Hadoop

Paso 1 – Instalación de Java

Para empezar, vamos a actualizar nuestra lista de paquetes:

actualización apta sudo apt update

  • sudo

a continuación, vamos a instalar OpenJDK, el valor predeterminado Kit de Desarrollo de Java en Ubuntu 18.04:

sudo apt install default-jdk

  • sudo apt instalar por defecto con JDK

Una vez que la instalación se haya completado, vamos a ver la versión.

java -version

  • java -version

Outputopenjdk 10.0.1 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

verifica Esta salida que OpenJDK se ha instalado correctamente.

Paso 2 – Instalación de Hadoop

Con Java en su lugar, vamos a visitar la página de prensa Apache Hadoop para encontrar la versión más reciente estable.

Vaya a binaria para la liberación desea instalar. En esta guía, vamos a instalar Hadoop 3.0.3.

En la siguiente página, haga clic derecho y copiar el enlace a la versión binaria.

En el servidor, vamos a utilizar wget para tomarla:

wget http://www-us.apache.org/dist/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz

  • wget http://www-us.apache.org/dist/hadoop/common/hadoop-3.0.3/hadoop-3.0 .3.tar.gz

Nota: la página web Apache se le dirigirá a la mejor espejo de forma dinámica, por lo que su URL puede no coincidir con la URL anterior.

Con el fin de asegurarse de que el archivo que descargamos no ha sido alterado, vamos a hacer una comprobación rápida usando SHA-256. Volver a la página de comunicados, a continuación, haga clic derecho y copiar el enlace al archivo de control para la liberación binario descargado:

Una vez más, vamos a utilizar wget en nuestro servidor para descargar el archivo: wget

wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz.mds

  • https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz.mds

A continuación, ejecute la verificación: shasum

shasum -a 256 hadoop-3.0.3.tar.gz

  • -a 256 hadoop-3.0.3.tar.gz

Outputdb96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a hadoop-3.0.3.tar.gz

Compare este valor con el valor SHA-256 en el archivo .mds:

cat hadoop-3.0.3.tar.gz.mds

  • gato hadoop-3.0.3.tar.gz.mds

...
/build/sourcearget/artifacts/hadoop-3.0.3.tar.gz:
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A
...

puede ignorar la diferencia en el caso y los espacios. La salida del comando que se presentó contra el archivo que descargamos desde el espejo debe coincidir con el valor en el archivo que descargamos desde apache.org.

Ahora que hemos comprobado que el archivo no está dañado o cambiado, usaremos el comando tar con la bandera -x para extraer, -z para descomprimir, -v para prolijo de salida, y -f para especificar que estamos extrayendo de un archivo. Uso para rellenar la ficha o sustituir el número de versión correcta en el comando a continuación:

tar -xzvf hadoop-3.0.3.tar.gz

  • alquitrán -xzvf hadoop-3.0.3.tar.gz

Por último, vamos a mover los archivos extraídos en / usr / local, el lugar apropiado para el software instalado localmente. Cambiar el número de versión, si es necesario, para que coincida con la versión que ha descargado.

sudo mv hadoop-3.0.3 /usr/local/hadoop

  • sudo mv hadoop-3.0.3 / usr / local / hadoop

Con el software en su lugar, estamos listos para configurar su entorno.

Paso 3 – Configuración de Java Hadoop Hadoop Inicio

requiere que establezca la ruta de acceso a Java, ya sea como una variable de entorno o en el archivo de configuración de Hadoop.

El camino a Java, / usr / bin / java es un enlace simbólico a / etc / alternativas / java, que es a su vez un enlace simbólico a los valores predeterminados binario de Java. Vamos a utilizar readlink con la bandera -f para seguir cada enlace simbólico en cada parte de la ruta de acceso, de forma recursiva. A continuación, vamos a usar sed para recortar bin / java desde la salida para darnos el valor correcto para JAVA_HOME.

para encontrar el camino de Java por defecto

readlink -f /usr/bin/java | sed "s:bin/java::"

  • readlink -f / usr / bin / java | sed “s: bin / java ::”

Output/usr/lib/jvm/java-11-openjdk-amd64/

Puede copiar esta salida para configurar inicio de Java de Hadoop a esta versión específica, lo que asegura que si el valor por defecto cambia de Java, este valor no. Como alternativa, puede utilizar el comando readlink dinámicamente en el archivo para que Hadoop utilizará automáticamente cualquier versión de Java se establece como el valor por defecto del sistema.

Para empezar, hadoop-env.sh abierta:

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

  • sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

A continuación, elija una de las siguientes opciones: Opción 1

: Establecer una opción valor estático

. . .
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
. . .

2: uso readlink para establecer el valor dinámicamente

. . .
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
. . .

Nota: con respecto a Hadoop, el valor de JAVA_HOME en las anulaciones hadoop-env.sh todos los valores que se establecen en el medio ambiente / etc / profile o en el perfil de un usuario.

Paso 4 – Ejecución de Hadoop

Ahora debemos ser capaces de ejecutar Hadoop:

/usr/local/hadoop/bin/hadoop

  • / usr / local / hadoop / bin / hadoop

OutputUsage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
where CLASSNAME is a user-provided Java class

OPTIONS is none or any of:

--config dir Hadoop config directory
--debug turn on shell script debug mode
--help usage information
buildpaths attempt to add class files from build tree
hostnames list[,of,host,names] hosts to use in slave mode
hosts filename list of hosts to use in slave mode
loglevel level set the log4j level for this command
workers turn on worker mode

SUBCOMMAND is one of:
. . .

Los medios de ayuda que hemos configurado correctamente para ejecutar Hadoop en stand- modo autónomo. Vamos a asegurarnos de que está funcionando correctamente mediante la ejecución de los programas informáticos barcos ejemplo MapReduce con. Para ello, cree un directorio denominado introducción en nuestro directorio home y copiar los archivos de configuración de Hadoop en él para usar esos archivos ya que nuestros datos.

mkdir ~/input
cp /usr/local/hadoop/etc/hadoop/*.xml ~/input

  • mkdir ~ / entrada
  • cp /usr/local/hadoop/etc/hadoop/*.xml ~ / entrada

A continuación, puede utilizar el siguiente comando para ejecutar el programa de Hadoop MapReduce-MapReduce-ejemplos, un Java archive con varias opciones. Vamos a invocar su programa grep, uno de los muchos ejemplos incluidos en Hadoop MapReduce–ejemplos, seguido del directorio de entrada, entrada y el grep_example directorio de salida. El programa grep MapReduce contará los partidos de una palabra literal o una expresión regular. Por último, le ofreceremos la expresión regular permitida [.] * Para encontrar apariciones de la palabra permitido dentro o al final de una frase declarativa. La expresión entre mayúsculas y minúsculas, así que no se encuentra la palabra si se capitalizan al inicio de una oración:

/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep ~/input ~/grep_example 'allowed[.]*'

  • / usr / local / hadoop / bin / jar hadoop / usr / local / hadoop / share / hadoop / mapreduce / hadoop-mapreduce-ejemplos-3.0.3.jar grep ~ / ~ entrada / grep_example ‘permitido [.] *’

Cuando se complete el trabajo, se presenta un resumen de lo que ha sido procesada y los errores que tiene encontró, pero esto no contiene los resultados reales.

Output . . .
File System Counters
FILE: Number of bytes read=1330690
FILE: Number of bytes written=3128841
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
Map-Reduce Framework
Map input records=2
Map output records=2
Map output bytes=33
Map output materialized bytes=43
Input split bytes=115
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=43
Reduce input records=2
Reduce output records=2
Spilled Records=4
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=3
Total committed heap usage (bytes)=478150656
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=147
File Output Format Counters
Bytes Written=34

Nota: Si el directorio de salida ya existe, el programa va a fracasar, y en lugar de ver el resumen, la salida quedará del siguiente modo:

Output . . .
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

resultados se almacenan en el directorio de salida y se puede comprobar corriendo gato en el directorio de salida: tarea gato

cat ~/grep_example/*

  • ~ / grep_example / *

Output19 allowed.
1 allowed

el MapReduce encontró 19 apariciones de la palabra permitieron seguidos de un punto y una aparición en los que no lo era. Al ejecutar el programa de ejemplo se ha comprobado que nuestra instalación independiente está funcionando correctamente y que los usuarios no privilegiados en el sistema puede ejecutar Hadoop para la exploración o la depuración.

Conclusión

En este tutorial, hemos instalado Hadoop en modo autónomo y se verificó mediante la ejecución de un programa de ejemplo que proporcionaba. Para aprender cómo escribir sus propios programas de MapReduce, es posible que desee visitar tutorial MapReduce Hadoop de Apache, que camina a través del código detrás del ejemplo. Cuando esté listo para configurar un clúster, consulte la guía de instalación Fundación Apache Hadoop Cluster.