Big data: 01 Instalación detallada y operación de Hadoop bajo MacOS

Directorio

Instalación y operación de Hadoop

1. El entorno utilizado por el autor.

2. De la instalación a la operación

2.1 Establecer permisos de inicio de sesión SSH

2.2 Instalar entorno JAVA

2.3 Instalar hadoop

2.4 Realizar configuración pseudodistribuida

2.5 Iniciar hadoop pseudodistribuido

2.6 Manejo ADVERTENCIA

2.7 Ejecución de instancias pseudodistribuidas de Hadoop


Instalación y operación de Hadoop

  La instalación de Hadoop se divide aproximadamente en 5 pasos:

  1. Cree un usuario de hadoop (los usuarios de Mac deben usar sus propios usuarios, este paso se omite para no causar problemas innecesarios)

  2. Establecer permisos de inicio de sesión SSH

  3. Instalar entorno JAVA

  4. Instalación y configuración independientes

  5. Configuración de instalación seudodistribuida

1. El entorno utilizado por el autor.

macOS 10.14.6

 

2. De la instalación a la operación

2.1 Establecer permisos de inicio de sesión SSH

SSH es la abreviatura de Secure Shell , que es un protocolo de seguridad basado en la capa de aplicación y la capa de transporte. SSH está configurado para habilitar el inicio de sesión sin contraseña . En el proceso de uso del clúster Hadoop, debe acceder continuamente a cada NameNode, y los procesos relacionados en el NameNode deben acceder continuamente a los daemons en otros nodos para comunicarse entre sí. Para permitir que Hadoop inicie sesión sin obstáculos Para otras máquinas, se debe establecer un método de inicio de sesión SSH sin contraseña.

En primer lugar, ir a Ajustes -> Compartir , compruebe la conexión remota, y permite a todos los usuarios el acceso.

Luego, abra la terminal, ingrese ssh localhost y luego ingrese la contraseña, puede ssh con éxito.

 

2.2 Instalar entorno JAVA

Hadoop es un marco de código abierto desarrollado en Java , que permite un modelo de programación simple para almacenar y procesar grandes datos en un entorno distribuido en grupos de computadoras. Por lo tanto, necesitamos preparar el entorno Java.

Primero abra el terminal e ingrese  java -version para ver la versión Java actual. Las Mac en los últimos años deberían tener Java incorporado, pero es posible que la versión sea más baja, y la versión inferior afectará la instalación de hadoop. Si la versión es demasiado baja, vaya Sitio web oficial de Oracle para descargar e instalar la última versión de Java.

Si  la versión java le indica que no hay java, vaya al sitio web oficial para instalar.

URL adjunta: sitio web oficial de Oracle para descargar Java para instalar dmg

Una vez completada la instalación, configuramos las variables de entorno JAVA. El JDK está instalado en el directorio / Library / Java / JavaVirtualMachines . Puede haber múltiples versiones de JDK en este directorio. Podemos escribir la versión apropiada (nueva) en la variable de entorno .

Ingrese vim ~ / .bash_profile en el terminal para configurar la ruta de Java. Entre ellos, "~" representa el directorio raíz del usuario actual; el nombre completo de bash en el archivo ".bash_profile" es Bourne-Again Shell, que es una extensión del shell. Como su nombre lo indica, ".bash_profile" es el archivo de configuración bash.

Después de abrir el archivo con vim, use el método de entrada en inglés para escribir aleatoriamente una letra para abrir el modo de inserción para la entrada. Luego usamos la palabra clave export para modificar las variables de entorno, e ingresamos export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / su versión jdk seleccionada. Jdk / Contents / Home" en la línea en blanco , preste atención a la ruta al nivel Home Luego presione la tecla ESC para ingresar al modo de edición de comandos de vim, bajo el método de entrada en inglés, luego ingrese : wq para escribir y salir.

Luego, ejecute source.bash_profile para que el archivo de configuración surta efecto. Luego ingrese java -version en la terminal   , puede ver la versión de Java.

Tenga en cuenta que al escribir qué java en el terminal , puede ver que la información del recibo muestra que Java se encuentra en usr / bin / java . De hecho, es un archivo suplente que realmente apunta a / Library / Java / JavaVirtualMachines / jdk version.jdk / Contents / Home / bin / Java .

 

2.3 Instalar hadoop

Aquí usamos el administrador de paquetes Homebrew para instalar la última versión de hadoop. Consulte el sitio web oficial para la instalación de Homebrew. Es muy simple. Hay una frase de código en el terminal.

Adjunte la dirección del sitio web oficial: sitio web oficial de Homebrew

Una vez completada la instalación, ingresamos brew install hadoop en el terminal para instalar el último hadoop. Tenga en cuenta que brew se actualizará solo cuando se use por primera vez, y la fuente de brew se encuentra en el extranjero, por lo que los amigos que no pueden trabajar en Internet siempre pueden estar atrapados aquí. Primero podemos reemplazarlo con una fuente doméstica: primero ingrese el directorio Homebrew cd / usr / local en la terminal / Homebrew , luego ingrese git remote set-url origin http://mirrors.ustc.edu.cn/homebrew.git para usar Zhongke Dayuan.

Una vez completada la instalación, ingresamos la versión de hadoop para ver la versión, si hay recibo de información, la instalación es exitosa.

Escriba qué hadoop en la terminal , puede ver la ubicación de instalación de hadoop: / usr / local / bin / hadoop . En este momento, hadoop pasa al modo local.

 

2.4 Realizar configuración pseudodistribuida

Hadoop tiene tres modos de funcionamiento:

  1. Modo local (modo predeterminado): no es necesario habilitar un proceso separado, se puede usar directamente para pruebas y desarrollo.
  2. Modo seudodistribuido: equivalente a un nodo completamente distribuido, solo un.
  3. Modo totalmente distribuido: múltiples nodos se ejecutan juntos.

Hadoop se puede ejecutar de forma pseudodistribuida en un solo nodo. El proceso de Hadoop se ejecuta como un proceso Java separado. El nodo actúa como NameNode y DataNode. Al mismo tiempo, lee archivos en HDFS. Pseudodistribuido necesita modificar algunos archivos de configuración.

Como se mencionó anteriormente, la ubicación de instalación de hadoop consultada en el terminal es  / usr / local / bin / hadoop . Los amigos cuidadosos pueden ver que esto también es un archivo stand-in. Hacemos clic derecho y elegimos mostrar el cuerpo original. Puede encontrar la ruta de instalación real de hadoop Es  /usr/local/Cellar/hadoop/3.2.1_1/bin/hadoop , y el archivo de configuración se encuentra en /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop , necesitamos modificar el núcleo- site.xml y hdfs-site.xml .

El archivo de configuración de Hadoop está en formato xml, y cada configuración se implementa declarando el nombre y el valor de la propiedad.

Primero, modifique el archivo de configuración core-site.xml , ingresamos el directorio real de hadoop, ingresamos cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop en el terminal , y luego usamos vim para abrir el archivo de configuración relevante vim core -site.xml .

La siguiente figura es el archivo original core-site.xml, que inserta nuestra configuración entre las líneas 19 y 20:

Aquí debe configurar un directorio tmp para que hadoop almacene archivos temporales . De lo contrario, Hadoop utilizará el directorio temporal predeterminado del sistema para almacenar archivos temporales, de modo que cuando salga del sistema, el directorio temporal predeterminado del sistema se borrará, de modo que la próxima vez que iniciemos sesión en Hadoop, tendremos que volver a iniciar el sistema.

Luego, también debe establecer un nombre lógico de la ruta hdfs, para que pueda acceder al sistema de archivos distribuido a través de este nombre lógico en el futuro. El nombre lógico que establecí aquí es hdfs: // localhost: 9000 , y yo mismo defino el número de puerto. Puede abrir otra ventana de terminal antes de definir el número de puerto, ingrese lsof -i: xxx , xxx es el número de puerto que desea definir, si encuentra que hay información de recibo después de la ejecución, significa que el número de puerto está ocupado, si no hay recibo Información, que indica que este puerto está vacío, podemos usar este número de puerto.

Tenga en cuenta que se utilizan 4 espacios como 1 sangría.

Luego, modifique el archivo de configuración hdfs-site.xml , o en este directorio  /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop , use vim para abrir el archivo de configuración relevante vim hdfs-site.xml .

También escriba nuestra configuración entre <configuración> y </ configuración>. Primero, necesitamos establecer el número de copias. En los archivos hdf del sistema de archivos distribuidos, hay varias copias de cada bloque de datos para garantizar la redundancia, de modo que después de que una máquina esté inactiva, otras máquinas puedan usarse normalmente. Solo hay una máquina y un nodo, por lo que el número se establece en 1; luego, necesitamos configurar un directorio de disco local para almacenar el archivo fsimage y un directorio de disco local para almacenar el bloque de datos hdfs, el bloque es la unidad básica de almacenamiento de archivos hdfs es el bloque . Finalmente, establezca permisos para que los usuarios no root también puedan escribir archivos en hdfs.

Hasta ahora, la configuración pseudodistribuida se ha completado. Tenga en cuenta que en este momento no hemos configurado los archivos relacionados con hilo. A continuación, ejecutaremos una rutina directamente con MapReduce.

 

2.5 Iniciar hadoop pseudodistribuido

Primero, formatee el NameNode. En este directorio  /usr/local/Cellar/hadoop/3.2.1_1 , ingrese hdfs namenode -format en la terminal . Luego sale un montón de información, siempre que vea la información que se muestra en la figura a continuación, significa que el formato es exitoso.

Luego, inicie los daemons NameNode y DataNode. Esta vez, en  el directorio /usr/local/Cellar/hadoop/3.2.1_1/libexec/sbin , ingrese directamente start-dfs.sh , puede ver los resultados que se muestran en la siguiente figura, los namenodes, Nodos de datos y nombres de nombres secundarios.

También puede verificar si el nodo se inicia ingresando el comando jps en la terminal .

En este momento, abra un navegador y visite http: // localhost: 9870 / . La siguiente interfaz parece indicar que el inicio se realizó correctamente. En esta interfaz, puede ver la información de NameNode y DataNode. Tenga en cuenta que el número de puerto de la versión hadoop 3.x es 9870, y el número de puerto descrito en muchos tutoriales antiguos es 50070.

Del mismo modo, ingrese stop-dfs.sh en la terminal para cerrar el proceso.

 

2.6 Manejo ADVERTENCIA

Después de que el autor ejecuta start-dfs.sh , aunque los nodos de nombres , los nodos de datos y los nodos de nombres secundarios se inician normalmente, hay una línea de advertencia a continuación.

Esto se debe a que el hadoop instalado a través de brew no tiene el directorio / lib / native en el directorio /usr/local/Cellar/hadoop/3.2.1_1/libexec . Después de consultar la información en línea, descubrí que el problema se puede resolver de dos maneras: 1. Descargue el código fuente de hadoop para compilar lib / native por maven; 2. Encuentre algunos otros compilados en Internet y póngalo directamente en hadoop. Aquí elegimos descargar lib / native directamente en csdn y ponerlo en el directorio /usr/local/Cellar/hadoop/3.2.1_1/libexec , luego reiniciarlo.

Adjunte la dirección lib / native : enlace: https://pan.baidu.com/s/1JUmC5JZcVQapSzUzzZFQhA contraseña: lvk0

 

2.7 Ejecución de instancias pseudodistribuidas de Hadoop

Hadoop seudodistribuido lee datos en HDFS.

En el navegador, en http: // localhost: 9870 / address, ingrese Utilidades-> Examinar el sistema de archivos, puede ver que actualmente no hay un nodo namenode.

Primero, necesitamos crear un directorio de usuarios en HDFS para facilitar nuestra administración, ingrese el directorio /usr/local/Cellar/hadoop/3.2.1_1/bin , este directorio es el directorio de archivos ejecutables exec de mi hadoop, ingrese hdfs dfs -mkdir -p / user / yang , donde -mkdir significa crear un directorio, -p significa crear un directorio jerárquico a lo largo de la ruta, y el lector puede definir la siguiente ruta de directorio / usuario / yang . Los DFS HDFS indica el comando actual sólo es aplicable al sistema de archivos HDFS, además de  fs HadoopDFS Hadoop comando, el primero se aplica a los sistemas de archivos diferentes, tales como el sistema de archivos local y sistema de archivos HDFS, este último con el comando DFS Hadoop El mismo efecto solo se puede aplicar al sistema de archivos HDFS. Luego actualizamos el navegador y se ha establecido un nuevo namenode.

Luego, ejecutamos una instancia de MapReduce en nuestro nodo personalizado. Continuamos creando dos directorios más en / user / yang , ingresamos hdfs dfs -mkdir -p / user / yang / mapreduce_example / input en la terminal , y luego ingresamos /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop , cargue los archivos xml en este directorio en el directorio de entrada que acabamos de crear, ingrese el comando hdfs dfs -put * .xml / user / yang / mapreduce_example / input , donde la función del comando -put es cargar un archivo o directorio local a la ruta en HDFS, uno de los dos parámetros detrás de -put es el archivo / directorio que se cargará, y el otro es la ruta en HDFS.

Después de cargar, puede ver la lista de archivos a través del comando hdfs dfs -ls / user / yang / mapreduce_example / input , por supuesto, también puede verla directamente en el navegador.

Luego ingrese el directorio bin cd /usr/local/Cellar/hadoop/3.2.1_1/bin y ejecute  hadoop jar /usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples -3.2.1.jar grep / user / yang / mapreduce_example / input / user / yang / mapreduce_example / output 'dfs [az.] +' , Esta es una instancia de grep, el formato de esta instrucción es el paquete jar de la instancia jar de hadoop Ruta grep ruta del archivo de entrada ruta del archivo de salida , tenga en cuenta que la carpeta de entrada aquí almacena el archivo que desea procesar (el archivo que se ingresa al programa), y la salida almacena el resultado generado después de que se completa el programa . Antes, la carpeta de salida no podía existir .

Una vez completada la operación, puede usar  hdfs dfs -cat / user / yang / mapreduce_example / output / * para ver los resultados.

También se puede ver en la página del navegador, puede ver que el archivo part-r-00000 bajo salida es el resultado de estadísticas.

También puede volver a obtener los resultados en ejecución en el local, use el comando -get hadoop fs -get / user / yang / mapreduce_example / output / Users / yangxingda / Desktop / hdfs-local en el formato del directorio de salida en el sistema de archivos hadoop fs -get hdfs El directorio local que desea poner .

Puede ver el resultado, el texto que cumple con la expresión regular al comienzo de dfs y se enumera el número de ocurrencias.

Publicado 16 artículos originales · elogiado 7 · 20,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/yuecangjiao5151/article/details/104483441
Recomendado
Clasificación