Introducción
CDH es la distribución Hadoop de Cloudera, que es completamente de código abierto, es más compatible, más segura y más estable que Apache Hadoop. También es una arquitectura más común entre las empresas de Internet.
Versión de CDH: CDH 5.12.2, paquete
Preparación de hardware
1. Si se trata de un host en la nube, basta con mirar la configuración
2. De acuerdo con el principio mínimo, preparar 6 hosts físicos para la preparación básica La configuración general es la siguiente
: PD: El equipo de puerta de enlace específico no se discutirá aquí.
3. Versión del sistema: Centos7.8 versión mínima de 64 bits
Preparación de software
Las siguientes operaciones deben ejecutarse en todos los hosts
1. Instale herramientas de red básicas
yum instalar net-tools ntp
2. Instale el entorno JAVA básico
Nombre del paquete Jar: jdk-8u151-linux-x64.rpm
Método de instalación: rpm -ivh jdk-8u151-linux-x64.rpm
PD: Básicamente, cualquier versión más grande que la mía funcionará
3. Modifique el nombre del host y la configuración del host.
De acuerdo con la situación real, organice aproximadamente la distribución de las tareas del host en el cableado
primero, y la
distribución actual de la configuración del host de sincronización es la siguiente, escrita en el archivo del sistema / etc / hosts
172.16.3.11 master01
172.16.3.12 master02
172.16.3.101 node01
172.16.3.102 node02
172.16.3.103 node03
172.16.3.104 node04
2. Actualice el nombre de host y
modifique el archivo de configuración de inicio del nombre de host para asegurarse de que el nombre de host no cambie después del reinicio.
[root@localhost ~]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=master01
Cambiar directamente sin reiniciar
hostnamectl master01
4. Modifique los parámetros del sistema para garantizar el funcionamiento normal del clúster.
Cloudera recomienda configurar / proc / sys / vm / swappiness en el valor máximo de 10. El ajuste actual es 60.
echo 10> / proc / sys / vm / swappiness
La compresión transparente de páginas enormes está habilitada, lo que puede causar importantes problemas de rendimiento. Por favor, corre
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Para deshabilitar esta configuración,
agregue el mismo comando a los scripts de inicialización como /etc/rc.local para que se pueda configurar cuando el sistema se reinicie. Los siguientes hosts se verán afectados:
Agregue las siguientes opciones en rc.local
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
#iptablesElija si desea deshabilitar según la situación real
iptables -F
service ntpd restart
Modifique el límite del sistema
en el archivo /etc/security/limits.conf, agregue la siguiente configuración antes # Fin del archivo
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
Luego cierre la sesión y vuelva a iniciarla para que surta efecto
5. Apague todos los tipos de firewalls
iptables -F
setenforce 0
6. Sincronización horaria
CDH tiene altos requisitos para la coincidencia de la zona horaria y la hora.
Utilice el servicio ntpd para sincronizar automáticamente la hora correspondiente a la zona horaria actual
yum install ntp
Utilice tzselect para ajustar la zona horaria actual
Finalmente, inicie el
servicio ntpd para reiniciar el servicio ntpd
Instalación del nodo maestro
Primero confirme la versión instalada.
Primero verifique la información de la versión y decida qué versión desea
ver la información de la versión
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html#cmvd_topic_1
Al 2021-03-19, la información es la siguiente
Cloudera Manager is available in the following releases:
Cloudera Manager 5.16.2 is the current release of Cloudera Manager 5.16.
Cloudera Manager 5.15.2. 5.14.4, 5.13.3, 5.12.2, 5.11.2, 5.10.2, 5.9.3, 5.8.5, 5.7.6, 5.6.1, 5.5.6, 5.4.10, 5.3.10, 5.2.7, 5.1.6, and 5.0.7 are previous stable releases of Cloudera Manager 5.14, 5.13, 5.12, 5.11, 5.10, 5.9, 5.8, 5.7, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, and 5.0 respectively.
Fuente de yum de construcción propia
Instale la fuente yum correspondiente al sistema actual
La primera forma es leer la fuente oficial.
Actualmente para el sistema centos7, ejecute la siguiente fuente para leer
rpm -Uvh http://archive.cloudera.com/cdh5/one-click-install/redhat/7/x86_64/cloudera-cdh-5-0.x86_64.rpm
La segunda forma es construir una fuente local (se recomienda de esta forma para facilitar la instalación posterior del nodo)
Entorno operativo: un nuevo host: 192.168.1.100, el sistema Centos7 puede ser
1, primero extraiga la versión en línea correspondiente del archivo de repositorio
rpm -Uvh http://archive.cloudera.com/cdh5/one-click-install/redhat/ 7 / x86_64 / cloudera-cdh-5-0.x86_64.rpm
[root @ master01 parcel-repo] # cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, versión 5.12.2
baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.2/
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY -cloudera
gpgcheck = 1
2. Instale la herramienta de código fuente local
yum install -y yum-utils createrepo httpd
3. Inicie el
servicio httpd httpd start
4. La sincronización corresponde al
reposync -r cloudera-manager original
5. Cree la ruta del repositorio correspondiente
mkdir -p / var / www / html / mirrors / cdh /
cp -r cloudera-manager / / var / www / html / mirrors / cdh /
cd / var / www / html / mirrors / cdh /
createrepo.
Una vez que se haya completado con éxito la fuente local correspondiente
y luego modifique el archivo de repositorio
[root @ master01 parcel-repo] # cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, versión 5.12.2
baseurl = http://192.168.1.100/mirrors/cdh/cloudera-manager/
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1
Instalar servidor
yum instalar cloudera-manager-daemons cloudera-manager-server
Instalar el agente
Sincronice el archivo /etc/yum.repos.d/cloudera-manager.repo con cada nodo y
ejecute yum install cloudera-manager-agent en cada nodo
para que pueda instalarlo localmente a través de la intranet y evitar la vergüenza de la velocidad de instalación lenta
Instalar MySQL
El clúster CDH puede ser compatible con muchas bases de datos, aquí elegimos usar Mysql
Instalación de MYSQL 5.5.6
安装MySQL
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
提取成功之后会在/etc/yum.repo.d路径下方生成两个yum文件
然后开始安装:
yum install mysql-server -y
启动:
service mysqld restart
现在设置的账密如下:
mysql -uroot -p111111
ps:密码复杂点哈,别那么简单
执行CDH建表语句
/usr/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p111111 --scm-host localhost scm scm scm_password
导入连接jar包
mkdir -p /usr/share/java/
cp mysql-connector-java.jar /usr/share/java/
Preparativos antes de implementar el clúster
Coloque el paquete de paquetes requerido en la ruta correspondiente de master01; de lo
contrario, debe descargarse, lo que será más lento
Una vez completada la instalación del lado del servidor, master01 tendrá un puerto 7180 adicional
http://172.16.1.11:7180/
admin admin,
y luego siga los pasos a continuación para construir un clúster.
Marque de acuerdo
Elige la versión gratuita
Ese. . . La versión gratuita definitivamente no es tan buena como la versión empresarial, depende de la situación específica.
Elija la instalación del paquete y la versión correspondiente
Continuar directamente
Ingrese la contraseña de la cuenta correspondiente al host
Debido a que el agente se ha instalado de antemano, la siguiente implementación del nodo será más fácil
PD: Los ejemplos de IP y documentos en la imagen son diferentes y la implementación depende de la IP real.
El paquete de paquetes se ha implementado antes, por lo que será más rápido aquí.
De acuerdo con la situación comercial real, elegí Spark para satisfacer mis necesidades reales.
Distribución de nodos según la situación real
NameNode: se utiliza principalmente para almacenar información de metadatos HDFS, como información de espacio de nombres, información de bloque, etc. Cuando está funcionando, esta información se almacena en la memoria. Pero esta información también se puede conservar en el disco.
Nodo de nombre secundario: el objetivo principal es proporcionar un punto de control en HDFS. Es solo un nodo auxiliar de NameNode. Tenga en cuenta que este no es un nodo de respaldo, sino un nodo de verificación. ¡Preste especial atención! ! !
Balanceador: Equilibra la tasa de uso del espacio de datos entre los nodos.
HttpFS: Es una interfaz http de hadoop hdfs proporcionada por la empresa cloudera. A través de la API REST WebHDFS, puede leer y escribir en hdfs.
NFSGateway: La puerta de enlace HDFS NFS permite a los clientes montar HDFS E interactúe con él a través de NFS como si fuera parte del sistema de archivos local. La puerta de enlace es compatible con NFSv3.
Datanode: el nodo donde se almacenan los datos
Hive Gateway: puerta de enlace predeterminada de Hive. De forma predeterminada, cada nodo debe tener una
entrada de acceso a metadatos Hive Metastore Server: Hive, utilizando el protocolo Thrift para proporcionar acceso en varios idiomas a los metadatos de Hive.
WebHCatServer: WebHCat proporciona la interfaz Rest, que permite a los usuarios ejecutar operaciones Hive DDL, ejecutar tareas Hive HQL y ejecutar tareas MapReduce a través del protocolo HTTPS seguro.
HiveServer2: la entrada de acceso a los datos en la biblioteca de Hive. El protocolo de ahorro también es aplicable para proporcionar acceso en varios idiomas a los datos en Hive, como el acceso remoto común a datos de Hive como Python y Java. El cliente de beeline es también el
PS que accede a los datos a través de HiveServer2 .: Relativamente hablando, si hay una tabla en Hive. Acceda a la información de esta tabla a través del Metastore Server para
acceder al contenido específico de la tabla, a través de HiveServer2
Hue Server: Hue Server es una aplicación web construida en el marco web Django Python.
Load Balancer : Equilibrio de carga de Hue
Monitor de servicio: recopila información sobre el estado y las métricas del servicio.
Monitor de actividad: recopila información sobre las actividades del servicio.
Monitor de host: recopila la información de salud y métricas sobre el host.
Servidor de eventos: agregue eventos de componentes y utilícelos para alertas y búsquedas.
Editor de alertas: genere y proporcione alertas para tipos específicos de eventos
Oozie: es un proyecto integrado con la pila de tecnología Hadoop para admitir múltiples tipos de trabajos Hadoop (como Java map-reduce, Streaming map-reduce, Pig, Hive, Sqoop y Distcp, Spark) y trabajos específicos del sistema (como Programas Java) y scripts de shell), un sistema de programación de flujo de trabajo para administrar trabajos de Apache Hadoop.
Servidor de historial:
Pasarela de registro de tareas históricas : Pasarela de programación de nodos de Spark
Administrador de recursos: asignación y programación de recursos
Historial de trabajos: registros históricos de programación de tareas
Administrador de nodos: administración de recursos y tareas de un solo nodo
Servidor: al menos tres nodos, si es razonable, cinco nodos, utilizados principalmente para la gestión de la configuración, sincronización distribuida, etc.
La conexión de base de datos correspondiente se puede configurar directamente en el siguiente paso, como se muestra en la siguiente figura
Siguiente paso -> comenzará a instalarse automáticamente de acuerdo con la implementación anterior
Finalmente, el clúster está configurado, ¡salud! ! !
para resumir
CDH proporciona componentes y mecanismos de gestión relativamente completos, pero eso no significa que no se necesite mantenimiento y optimización. Poco a poco hablaremos sobre el contenido relacionado con la optimización en el seguimiento.