Big Data fuera de línea Fase 02: Apache Hadoop

Introducción a Hadoop

Hadoop es un marco de software de código abierto implementado en lenguaje Java bajo Apache, y es una plataforma de software para desarrollar y operar el procesamiento de datos a gran escala. Permite el procesamiento distribuido de grandes conjuntos de datos en grupos de computadoras masivas utilizando un modelo de programación simple.

En un sentido estricto, Hadoop se refiere a Apache, un marco de código abierto cuyos componentes principales son:

  • HDFS (Sistema de archivos distribuidos): resuelva el almacenamiento masivo de datos
  • YARN (un marco para la programación de trabajos y la gestión de recursos de clúster): resuelva la programación de tareas de recursos
  • MAPREDUCE (marco de programación de computación distribuida): solución de computación masiva de datos

En un sentido amplio, Hadoop generalmente se refiere a un concepto más amplio: el ecosistema de Hadoop.

El Hadoop actual se ha convertido en un sistema enorme, con el crecimiento del ecosistema han surgido más y más proyectos nuevos, algunos de los cuales no están a cargo de Apache, estos proyectos son buenos complementos de HADOOP o abstracciones de mayor nivel.

Una breve historia del desarrollo de Hadoop

Hadoop fue creado por el fundador de Apache Lucene, Doug Cutting. Se originó en Nutch, que es un subproyecto de Lucene. El objetivo de diseño de Nutch es crear un motor de búsqueda a gran escala para toda la web, que incluya funciones como rastreo web, indexación y consultas. Sin embargo, a medida que aumenta el número de páginas web rastreadas, se encuentra con serios problemas de escalabilidad: cómo resolver miles de millones de problemas de indexación y almacenamiento de páginas web.

En 2003, Google publicó un artículo que proporcionaba una solución factible a este problema. El documento describe la arquitectura del producto de Google, que se llama: Google Distributed File System (GFS), que puede resolver las necesidades de almacenamiento de archivos grandes generados en el proceso de indexación y rastreo web.

En 2004, Google publicó un artículo que presentaba la versión de Google del sistema MapReduce al mundo.

Al mismo tiempo, los desarrolladores de Nutch completaron las correspondientes implementaciones de código abierto de HDFS y MAPREDUCE, y se separaron de Nutch para convertirse en un proyecto independiente HADOOP. En enero de 2008, HADOOP se convirtió en el principal proyecto de Apache, marcando el comienzo de su rápido período de desarrollo.

En 2006, Google publicó un artículo sobre BigTable, que impulsó el desarrollo de Hbase.

Por lo tanto, el desarrollo de Hadoop y su ecosistema es inseparable de la contribución de Google.

Construcción de clústeres de Hadoop

versión de lanzamiento

Las distribuciones de Hadoop se dividen en ediciones comunitarias de código abierto y ediciones comerciales .

La versión comunitaria se refiere a la versión mantenida por Apache Software Foundation, que es un sistema de versión mantenido oficialmente.

https://hadoop.apache.org/

La versión comercial de Hadoop se refiere a la versión lanzada por empresas comerciales de terceros sobre la base de la versión comunitaria de Hadoop, que ha realizado algunas modificaciones, integración y pruebas de compatibilidad de varios componentes del servicio. Los más famosos incluyen CDH de cloudera, mapR y hortonWorks .

https://www.cloudera.com/products/open-source/apache-hadoop/key-cdh-components.html

La versión de Hadoop es muy especial y es desarrollada en paralelo por varias ramas. Desde una perspectiva amplia, se divide en tres grandes series de versiones: 1.x, 2.x y 3.x.

Hadoop1.0 consta de un sistema de archivos distribuido HDFS y un marco informático fuera de línea MapReduce. La estructura es atrasada y ha sido eliminada.

Hadoop 2.0 incluye un sistema de archivos distribuido HDFS, un sistema de administración de recursos YARN y un marco informático fuera de línea MapReduce. En comparación con Hadoop 1.0, Hadoop 2.0 es más potente, tiene mejor escalabilidad y rendimiento y es compatible con múltiples marcos informáticos.

Hadoop 3.0 tiene una serie de mejoras funcionales en comparación con el Hadoop 2.0 anterior. En la actualidad, se ha estabilizado y es posible que algunos componentes del ecosistema no se hayan actualizado e integrado.

Estamos usando en nuestro curso: Apache Hadoop 3.3.0.

Introducción al clúster

Específicamente, el clúster HADOOP incluye dos clústeres: el clúster HDFS y el clúster YARN Los dos están lógicamente separados, pero a menudo están físicamente juntos.

El clúster HDFS es responsable del almacenamiento de datos masivos.Los roles principales en el clúster son:

Nodo de nombre, Nodo de datos, Nodo de nombre secundario

El clúster de YARN es responsable de la programación de recursos durante las operaciones de datos masivos. Los roles principales en el clúster son:

Administrador de recursos, Administrador de nodos

Hay tres métodos de implementación de Hadoop, modo independiente (modo independiente), modo pseudodistribuido (modo pseudodistribuido), modo de clúster (modo de clúster), los dos primeros de los cuales se implementan en una sola máquina.

El modo independiente también se denomina modo independiente Solo una máquina ejecuta un proceso Java, principalmente para la depuración.

En el modo pseudodistribuido, NameNode y DataNode de HDFS, ResourceManger y NodeManager de YARN se ejecutan en una máquina, pero se inician procesos Java separados respectivamente, principalmente para la depuración.

El modo de clúster se utiliza principalmente para la implementación del entorno de producción. Utilizará N hosts para formar un clúster de Hadoop. En este modo de implementación, el nodo maestro y los nodos esclavos se implementarán por separado en diferentes máquinas.

Tomamos 3 nodos como ejemplo para construir, y los roles se asignan de la siguiente manera:

nodo1 NameNode DataNode ResourceManager

nodo2 Nodo de datos Administrador de nodos Nodo de nombre secundario

nodo3 Administrador de nodos de nodo de datos


Preparación del entorno básico del servidor

1.0 配置好各虚拟机的网络(采用NAT联网模式)
		
	1.1修改各个虚拟机主机名
		vi /etc/hostname
		
		node1.itcast.cn    
	
	1.2修改主机名和IP的映射关系
		vi /etc/hosts
			
		192.168.227.151	node1.itcast.cn node1
		192.168.227.152	node2.itcast.cn node2
		192.168.227.153	node3.itcast.cn node3
	
	1.3关闭防火墙
		#查看防火墙状态
		systemctl status firewalld.service
		#关闭防火墙
		systemctl stop firewalld.service
		#关闭防火墙开机启动
		systemctl disable firewalld.service

	1.4.配置ssh免登陆(配置node1-->node1,node2,node3)
	#node1生成ssh免登陆密钥

	ssh-keygen -t rsa (一直回车)
	执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
	将公钥拷贝到要免密登陆的目标机器上
	ssh-copy-id node1
	ssh-copy-id node2
	ssh-copy-id node3
	
	1.5 同步集群时间
		yum install ntpdate
		ntpdate cn.pool.ntp.org

Instalación del entorno JDK

2.1上传jdk
	jdk-8u65-linux-x64.tar.gz
	
2.2解压jdk
	tar -zxvf jdk-8u65-linux-x64.tar.gz -C /export/server
	
2.3将java添加到环境变量中
	vim /etc/profile
	#在文件最后添加
	export JAVA_HOME=/export/server/jdk1.8.0_65
	export PATH=$PATH:$JAVA_HOME/bin
	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

	#刷新配置
	source /etc/profile

Supongo que te gusta

Origin blog.csdn.net/Blue92120/article/details/132203973
Recomendado
Clasificación