Big Data: introducción a Hadoop
Qué es big data:
(1.) Big data se refiere a una colección de datos cuyo contenido no puede ser capturado, administrado y procesado por software convencional dentro de un cierto período de tiempo. En otras palabras, la cantidad de datos es muy grande y no puede ser procesada por herramientas convencionales, como bases de datos relacionales, almacenes de datos, etc. ¿Cuál es la magnitud de "grande" aquí? Por ejemplo, los datos procesados en Alibaba cada día alcanzan los 20 PB (es decir, 20971520 GB).
2 Características del big data:
(1.) Gran volumen. Según la tendencia de desarrollo actual, el volumen de big data ha alcanzado el nivel PB o incluso el nivel EB.
(2.) Big data tiene varios tipos de datos, principalmente datos no estructurados, como revistas en línea, audio, video, imágenes, información de ubicación geográfica, datos de transacciones, datos sociales, etc.
(3.) Baja densidad de valor. Los datos valiosos sólo representan una pequeña parte del total de datos. Por ejemplo, en un vídeo sólo son valiosos unos segundos de información.
(4.) Generan y requieren alta velocidad de procesamiento. Ésta es la característica más importante del área de big data y de la minería de datos tradicional.
3. Además, existen otros sistemas de procesamiento que pueden procesar big data.
Hadoop (código abierto)
Spark (código abierto)
Storm (código abierto)
MongoDB (código abierto) p>
IBM PureDate (comercial)
Oracle Exadata (comercial)
SAP Hana (comercial)
Teradata AsterData (comercial)
EMC GreenPlum (comercial)
HP Vertica (comercial)
Nota: Aquí solo presentamos Hadoop.
Dos: arquitectura Hadoop
Fuente de Hadoop:
Hadoop se originó a partir del anuncio de Google de 2003 a 2004 sobre GFS (Google File System), MapReduce y tres artículos de BigTable, fundador Doug Cutting. Hadoop es ahora un proyecto de alto nivel de la Fundación Apache; "Hadoop" es un nombre ficticio. Llamado así por los hijos de Doug Cutting por su elefante de juguete amarillo.
Núcleo de Hadoop:
(1.) HDFS y MapReduce son los dos núcleos de Hadoop. HDFS se utiliza para lograr el soporte subyacente para el almacenamiento distribuido, logrando lectura y escritura paralelas de alta velocidad y expansión de almacenamiento de gran capacidad.
(2.) Implementar soporte de programa de procesamiento para tareas distribuidas a través de MapReduce para garantizar el procesamiento de datos particionados de alta velocidad.
3. Subproyecto Hadoop:
(1.) HDFS: sistema de archivos distribuido, la piedra angular de todo el sistema Hadoop.
(2.) MapReduce/YARN: Modelo de programación paralela. YARN es el marco MapReduce de segunda generación. Desde la versión 0.23.01 de Hadoop, MapReduce ha sido reconstruido y a menudo se llama MapReduce V2. El antiguo MapReduce también se llama MapReduce V1.
(3.) Hive: un almacén de datos construido en Hadoop, que proporciona un método de consulta similar a la voz SQL para consultar datos en Hadoop.
(5.) HBase: nombre completo Hadoop La base de datos, la base de datos distribuida y orientada a columnas de Hadoop, proviene del artículo de Google sobre BigTable. Se utiliza principalmente para acceso aleatorio, lectura y escritura en tiempo real de big data.
(6.) ZooKeeper: Es un servicio de coordinación diseñado para aplicaciones distribuidas. Proporciona principalmente a los usuarios servicios como sincronización, gestión de configuración, agrupación y denominación, y alivia las tareas de coordinación realizadas por las aplicaciones distribuidas. .
Hay muchos otros proyectos que no explicaré uno por uno aquí.
Tres: Instalar el entorno operativo Hadoop
Creación de usuarios:
(1.) Cree un grupo de usuarios de Hadoop e ingrese el comando:
groupadd hadoop
(2.) Cree el usuario hduser e ingrese el comando:
useradd –p hadoop hduser
(3.) Configure el hduser contraseña e ingrese el comando:
passwd hduser
Ingrese la contraseña dos veces cuando se le solicite
(4.) Agregue permisos al usuario hduser e ingrese el comando:
#Modificar permisos
chmod 777 /etc/sudoers
#Editar sudoers
Gedit /etc/sudoers
#Restaurar permisos predeterminados
p>chmod 440 /etc/sudoers
Primero modifique los permisos del archivo sudoers, busque la línea "root ALL= (ALL)" en la edición de texto ventana, y luego actualice y agregue la línea "hduser" ALL=(ALL) ALL", agregue hduser a sudoers. Recuerde restaurar los permisos predeterminados después de agregarlos; de lo contrario, el sistema no permitirá el uso de los comandos sudo.
(5.) Después de la configuración, reinicie la máquina virtual e ingrese el comando:
Sudo reboot
Después de reiniciar, cambie al inicio de sesión de usuario hduser
Instalar JDK
(1.) Descargue jdk-7u67-linux-x64.rpm e ingrese al directorio de descarga.
(2.) Ejecute el comando de instalación:
Sudo rpm –ivh jdk-7u67-linux-x64.rpm
Una vez completado, verifique la ruta de instalación e ingrese el comando:
Rpm –qa jdk –l
Recuerde la ruta,
(3.) Configure las variables de entorno e ingrese el comando: p>
Sudo gedit /etc/profile
Abra el archivo de perfil y agregue el siguiente contenido en la parte inferior del archivo
export JAVA_HOME=/usr/java/jdk. 7.0.67
exportar CLASSPATH=$ JAVA_HOME/lib:$ CLASSPATH
exportar PATH=$ JAVA_HOME/bin:$PATH
Después de guardar, cierre el archivo y luego ingrese el comando para que la variable de entorno surta efecto: p>
Fuente /etc/profile
(4.) Verifique JDK, ingrese el comando:
Java –version
Si aparece la versión correcta Instalación exitosa.
Configurar el inicio de sesión SSH local sin contraseña:
(1.) Utilice ssh-keygen para generar archivos de clave privada y pública, ingrese el comando:
ssh-keygen –t rsa
(2.) La clave privada permanece en la máquina local y la clave pública se envía a otros hosts (ahora localhost). Ingrese el comando:
ssh-copy-id localhost
(3.) Utilice la clave pública para iniciar sesión e ingrese el comando:
ssh localhost
Configurar otros hosts para iniciar sesión sin contraseña SSH
(1.) Clonar dos veces. Haga clic derecho en la máquina virtual en la columna izquierda de VMware y seleccione el comando Administración---Clonar en el menú contextual emergente. Marque "Crear clon completo" cuando realice el tipo de clonación, haga clic en el botón "Siguiente" hasta que se complete.
(2.) Inicie e ingrese tres máquinas virtuales respectivamente y use ifconfig para consultar la dirección IP de cada host.
(3.) Modifique el nombre de host y el archivo de hosts de cada host.
Paso 1: Modificar el nombre del host e ingresar comandos en cada host.
Sudo gedit /etc/sysconfig/network
Paso 2: Modificar el archivo hosts:
sudo gedit /etc/hosts
Pasos 3: Modificar las IP de las tres máquinas virtuales
La IP de la primera máquina virtual correspondiente al nodo1: 192.168.1.130
La IP de la segunda máquina virtual correspondiente al nodo2: 192.168.1.131
La IP de la tercera máquina virtual correspondiente al nodo3: 192.168.1.132
(4.) Dado que el par de claves se generó en el nodo1, todo lo que necesita hacer ahora es ingresar el comando en el nodo1:
ssh-copy-id nodo2
ssh-copy-id nodo3
De esta manera, la clave pública del nodo1 se puede publicar en nodo2 y nodo3.
(5.) Pruebe SSH, ingrese el comando en el nodo1:
ssh nodo2
#Cerrar sesión
salir
ssh node3
salir
Cuatro: instalación completamente distribuida de Hadoop
1. Hadoop tiene tres modos de ejecución:
(1.) Modo independiente: no se requiere configuración, Hadoop se considera un proceso Java independiente que se ejecuta en modo no distribuido
(2.) Pseudodistribuido: un clúster con un solo nodo, este nodo es el Maestro (nodo maestro, servidor maestro) también es un Esclavo (nodo esclavo, servidor esclavo Se pueden simular varios tipos de nodos en la distribución con diferentes procesos java en este único nodo
(3. ) Completamente distribuido: para Hadoop, diferentes sistemas tendrán diferentes métodos de división de nodos.
2. Instale Hadoop
(1.) Obtenga el paquete comprimido de Hadoop hadoop-2.6.0.tar.gz. Después de descargarlo, puede usar VMWare Tools para compartir la carpeta. ***. O utilice la herramienta Xftp para transferir al nodo1. Ingrese nodo1, descomprima el paquete comprimido en el directorio /home/hduser e ingrese el comando: #Ingrese al directorio INICIO: "/home/hduser"
cd ~
tar – zxvf hadoop- 2.6.0.tar.gz
(2.) Cambiar el nombre del comando de entrada de hadoop:
mv hadoop-2.6.0 hadoop
(3. ) Configuración de las variables de entorno de Hadoop, ingrese el comando:
Sudo gedit /etc/profile
Agregue el siguiente script al perfil:
#hadoop
exportar HADOOP_HOME=/home/hduser/hadoop
exportar PATH=$HADOOP_HOME/bin:$PATH
Guardar y cerrar, y finalmente ingresar el comando para realizar la configuración tomar efecto
fuente /etc/profile
Nota: el nodo2 y el nodo3 deben configurarse de acuerdo con la configuración anterior.
3. Configurar Hadoop
(1.) El archivo hadoop-env.sh se utiliza para especificar la ruta JDK. Ingrese el comando:
[hduser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hduser@node1 hadoop]$ gedit hadoop-env.sh
Luego agregue el siguiente contenido para especificar la ruta jDK.
exportar JAVA_HOME=/usr/java/jdk1.7.0_67
(2.) Abra la ruta JDK especificada e ingrese el comando:
exportar JAVA_HOME= /usr /java/jdk1.7.0_67
(4.) core-site.xml: este archivo es la configuración global de Hadoop Ábralo y agregue los atributos de configuración al elemento de la siguiente manera:
fs. defaultFshdfs://node1:9000hadoop.tmp.dirfile:/home/hduser/hadoop/tmp Aquí hay dos propiedades de configuración comúnmente utilizadas. fs.defaultFS indica el prefijo de ruta predeterminado cuando el cliente se conecta a HDFS 9000. es donde funciona el puerto HDFS. Hadoop.tmp.dir se guardará en el directorio de archivos temporales predeterminado del sistema /tmp si no se especifica. (5.) hdfs-site.xml: este archivo es la configuración de hdfs. Abra y agregue atributos de configuración al elemento. (6.) mapred-site.xml: este archivo es la configuración de MapReduce. Puede copiarlo y abrirlo desde el archivo de plantilla mapred-site.xml.template y agregar la configuración al elemento. (7.) Yarn-site.xml: si el marco YARN está configurado en mapred-site.xml, el marco YARN utilizará la configuración en este archivo, lo abrirá y agregará atributos de configuración al elemento. (8.) Copie estos siete comandos en el nodo2 y el nodo3. Ingrese el siguiente comando: scp –r /home/hduser/hadoop/etc/hadoop/ hduser@node2:/home/hduser/hadoop/etc/scp –r /home/hduser/hadoop/etc/hadoop/ hduser@node3: / home/hduser/hadoop/etc/4. Verificación: Verifique que hadoop sea correcto (1.) Formatee el NameNode en el host maestro (nodo1). Ingrese el comando: [hduser@node1 ~]$ cd ~/hadoop[hduser@node1 hadoop]$ bin/hdfs namenode –format (2) Cierre el nodo1, el nodo2, el nodo3, el firewall del sistema y reinicie la máquina virtual. Ingrese el comando: service iptablesstopsudo chkconfig iptables offreboot (3.) Ingrese lo siguiente para iniciar HDFS: [hduser@node1 ~]$ cd ~/hadoop (4.) Iniciar todo [hduser@node1 hadoop]$ sbin/start-all .sh (5.) Verifique el estado del clúster: [hduser@node1 hadoop]$ bin/hdfs dfsadmin –report (6.) Verifique el estado de ejecución de hdfs en el navegador, URL: http://node1:50070 (7.) Detén Hadoop. Ingrese el comando: [hduser@node1 hadoop]$ sbin/stop-all.sh Cinco: operaciones de shell relacionadas con Hadoop (1.) Cree file1.txt y file2.txt en el directorio /home/hduser/file del sistema operativo y úsalo Creación de interfaz gráfica.
contenido de entrada file1.txt: Hola mundo, hola HADOOPContenido de entrada file2.txt Hola mundo, hola CHIAN (2.) Crear directorio /input2 después de iniciar hdfs [hduser@node1 hadoop]$ bin/hadoop fs –mkdir /input2 (3.) Cambiar archivo1 .txt.file2.txt se guarda en hdfs: [hduser@node1 hadoop]$ bin/hadoop fs –put -/file/file*.txt /input2/ (4.) [hduser@node1 hadoop]$ bin/hadoop fs –ls /entrada2