Implementación y resolución de problemas de CDH

Capítulo 1 Construcción

Prefacio
Este documento es para la implementación de CDH 6.3.1. Los pasos de instalación para otras versiones de CDH son aproximadamente los mismos. Si encuentra errores al instalar otras versiones de CDH, consulte mi otro documento.
Resolución de errores de instalación de CDH-7.1.4

1.1 Descripción

La ip y el nombre de host aquí dependen de la situación real

1.2 Medio Ambiente

Sistema operativo
CentOS 7
servidor 5 juegos, 1 maestro, 5 esclavos (maestro y maestro y esclavo)
resolución de nombre de host
inicio de sesión sin contraseña

1.3 Sincronización horaria

Operación del nodo maestro

yum -y install chrony

Configure el tiempo de sincronización desde Alibaba Cloud, preste atención al segmento ip después de permitir y configure de qué segmento es el esclavo.

vim /etc/chrony.conf 

Inserte la descripción de la imagen aquí

systemctl enable chronyd
systemctl start chronyd

Operación del nodo esclavo

yum -y install chrony

Configuración, sincronizar el tiempo directamente desde el nodo maestro

vim /etc/chrony.conf

Inserte la descripción de la imagen aquí

systemctl enable chronyd
systemctl start chronyd

1.4 Apague el firewall y selinux

Todas las operaciones de nodo

sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config && systemctl disable firewalld
systemctl stop firewalld
setenforce 0

1.5 Modificar el nombre de host

hostnamectl set-hostname cdh-1
hostnamectl set-hostname cdh-2
hostnamectl set-hostname cdh-3
hostnamectl set-hostname cdh-4
hostnamectl set-hostname cdh-5

1.6 Asignación de nodos

cdh-1 es nodo maestro y nodo esclavo,
otros son nodos esclavos

1.7 Resolución de nombre de host

Todos los hosts son iguales

cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.235.120 cdh-1
192.168.235.126 cdh-2
192.168.235.108 cdh-3
192.168.235.123 cdh-4
192.168.235.113 cdh-5

1.8 Inicio de sesión sin contraseña

Todos los hosts se ejecutan

ssh-keygen
ssh-copy-id 192.168.235.120
ssh-copy-id 192.168.235.126
ssh-copy-id 192.168.235.108
ssh-copy-id 192.168.235.123
ssh-copy-id 192.168.235.113

1.9 Instalar jdk

Todos los nodos se ejecutan

tar zxvf jdk-8u181-linux-x64.tar.gz -C /opt/
echo "export JAVA_HOME=/opt/jdk1.8.0_181/" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH" >> /etc/profile
echo "export CLASSPATH=.\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib/tools.jar" >> /etc/profile
source /etc/profile

1.10 dirección del paquete de instalación de Cloudera Manager

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

1.11 Dirección del paquete de instalación de paquetes

https://archive.cloudera.com/cdh6/6.3.2/parcels/

1.12 Paquetes de instalación requeridos por el maestro

cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
mysql-connector-java-8.0.15-1.el7.noarch.rpm

Operación del nodo
maestro Transferir el paquete al directorio / root / del host maestro
Transferir el paquete a otros hosts

cd /root
scp jdk-8u181-linux-x64.tar.gz cloudera-manager-* oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* manifest.json cdh-2:/root/
scp jdk-8u181-linux-x64.tar.gz cloudera-manager-* oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* manifest.json cdh-3:/root/
scp jdk-8u181-linux-x64.tar.gz cloudera-manager-* oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* manifest.json cdh-4:/root/
scp jdk-8u181-linux-x64.tar.gz cloudera-manager-* oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* manifest.json cdh-5:/root/

1.13 Paquetes de instalación requeridos por el esclavo

cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

1.14 Instalar cloudera-server

El nodo maestro ejecuta
las dependencias necesarias para instalar cloudera-server

yum -y install psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap rpcbind fuse-libs redhat-lsb net-tools postgresql-server

Instalar paquetes relacionados con cloudera

rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

1.15 Instalar y configurar mysql

Ejecución del nodo maestro

yum -y install mariadb mariadb-server mariadb-devel
systemctl enable mariadb
systemctl start mariadb

Instale jdbc versión 8.0.15

rpm -ivh mysql-connector-java-8.0.15-1.el7.noarch.rpm
cd /usr/share/java
cp -p mysql-connector-java-8.0.15.jar mysql-connector-java.jar

O ejecutar directamente

cp -p /usr/share/java/mysql-connector-java-8.0.15.jar /usr/share/java/mysql-connector-java.jar

1.16 Instale jdbc en el lado esclavo

yum -y install java-headless
rpm -ivh /web/mysql-connector-java-8.0.15-1.el7.noarch.rpm
cp -p /usr/share/java/mysql-connector-java-8.0.15.jar /usr/share/java/mysql-connector-java.jar

1.17 Autorización de construcción de base de datos

Ejecución del nodo maestro
Nota: La base de datos aquí no tiene que tener este nombre, depende de su preferencia

CREATE DATABASE report_manager DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navigator_audit DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navigator_metadata DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE activity_monitor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON report_manager.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON report_manager.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON navigator_audit.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON navigator_audit.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON navigator_metadata.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON navigator_metadata.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON activity_monitor.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON activity_monitor.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON hue.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON hue.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON oozie.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON oozie.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';
GRANT ALL ON hive.* TO 'cdh6'@'%' IDENTIFIED BY 'cdh@336';
GRANT ALL ON hive.* TO 'cdh6'@'cdh-1' IDENTIFIED BY 'cdh@336';

1.18 Complete la base de datos

ejecución del nodo maestro

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm   -uroot -p  scm scm scm

o

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm   -uroot -p -hcdh-1 --scm-host cdh-1  scm scm scm

1.19 Iniciar cloudera-scm-server

ejecución del nodo maestro

systemctl start cloudera-scm-server

1.20 Instalar cloudera-agent


Dependencias requeridas por todos los nodos para ejecutar cloudera-agent

yum -y install bind-utils httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libpq.so.5 psmisc cyrus-sasl-plain cyrus-sasl-gssapi portmap /lib/lsb/init-functions fuse fuse-libs
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

1.21 Instalar oracle-j2sdk

Todos los nodos ejecutan
rpm -ivh oracle-j2sdk1.8-1.8.0 + update181-1.x86_64.rpm

1.22 Iniciar sesión

IP del nodo maestro de entrada del navegador: 7180

1.23 Clúster de configuración de la interfaz web

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Tenga en cuenta que aquí, si no se muestra la versión de CDH disponible, haga clic en Más opciones para agregar una dirección URL disponible
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

No elija aquí, porque jdk ya está instalado
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Como se muestra en la figura siguiente, en el directorio / opt / cloudera / parcels de cada nodo, habrá un archivo ./flood adicional después de que se complete la instalación del agente
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Este error está bien, porque hemos configurado el repositorio de parcelas local y hemos hecho clic para continuar después de que todo esté activado.
Inserte la descripción de la imagen aquí

Haga clic en Verificar, siga el orden, verifique el resultado después de verificar.
Inserte la descripción de la imagen aquí

Haga clic en Mostrar todos los hosts
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

Vuelva a ejecutar después de la optimización
Inserte la descripción de la imagen aquí

Paso omitido aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Capítulo 2 Informe de errores

2.1 descarga lenta de paquetes

Si la descarga de paquetes es lenta durante el proceso de instalación, vaya a https://archive.cloudera.com/cdh6/6.3.2/parcels/ para descargar el paquete de paquetes directamente y cargarlo en el maestro y esclavo / opt / cloudera / parcel-repo / Directory, tenga en cuenta que el esclavo no tiene este directorio, mkdir se crea antes de cargar.
El paquete descargado es el siguiente

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
manifest.json

Transferir el paquete al nodo maestro para su
ejecución
en el nodo maestro Cambiar el nombre del paquete CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 en cada host

mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 manifest.json /opt/cloudera/parcel-repo/

Pase el paquete al
nodo esclavo y ejecute el nodo esclavo

mkdir /opt/cloudera/parcel-repo/ && chown -R cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 manifest.json /opt/cloudera/parcel-repo/

2.2 La interfaz web se atasca al adquirir un bloqueo de seguridad

Resolver
web cdh pocos clics terminan la instalación enfrentan
una serie de fallas de inicio de sesión, para matar el proceso

ps aux|grep scm_prepare_node|awk '{print $2}'|xargs kill -9

Eliminar archivos innecesarios

rm -rf /tmp/scm_prepare_node.*

2.3 Mal estado operativo del host

Inserte la descripción de la imagen aquí

rm -rf /var/lib/cloudera-scm-agent/cm_guid
systemctl restart cloudera-scm-agent

2.4 Error de inicio de Spark-Shell

Ejecutar error de inicio de chispa

/opt/cloudera/parcels/CDH/bin/spark-shell

Inserte la descripción de la imagen aquí

resolver

echo "export HADOOP_USER_NAME=hdfs" >> /etc/profile && source /etc/profile

Aparece hbase de integración de tono 2.5 TSocket lee 0 bytes

De forma predeterminada, hue se conecta a hbase usando el puerto 9090 de hbase Thrift Server, y para la parte de configuración de hbase de hue.ini, el puerto 9090 de hbase está conectado a localhost

[hbase]
# Comma-separated list of HBase Thrift servers for clusters in the format of '(name|host:port)'.
hbase_clusters=(Cluster|localhost:9090)

Cámbielo a

[hbase]
# Comma-separated list of HBase Thrift servers for clusters in the format of '(name|host:port)'.
hbase_clusters=(Cluster|10.0.15.186:9090)

10.0.15.186 es la ip del servidor donde se inicia el servicio hbase Thrift Server

Solución: modifique el archivo de configuración de hbase para agregar la siguiente configuración

https://stackoverflow.com/questions/20415493/api-error-tsocket-read-0-bytes-when-using-hue-with-hbase
Add this to your hbase "core-site.conf":
<property>
  <name>hbase.thrift.support.proxyuser</name>
  <value>true</value>
</property>
<property>
  <name>hbase.regionserver.thrift.http</name>
  <value>true</value>
</property>

O cámbielo directamente en la interfaz web, se recomienda cambiarlo en la interfaz web
Inserte la descripción de la imagen aquí

Reinicie hbase y hue

2.6 hbase no puede hacerse pasar por administrador

Inserte la descripción de la imagen aquí

Presione F12 para abrir la interfaz de depuración del navegador, y el error se informa de la siguiente manera
Inserte la descripción de la imagen aquí

La interfaz web examinó el registro de roles de hue por separado y encontró un error valioso que
hbase no puede suplantar la
solución de administrador :
1. Configure lo siguiente en el archivo de configuración core-site.xml de hadoop y hbase:

<property>
    <name>hadoop.proxyuser.hbase.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hbase.groups</name>
    <value>*</value>
</property>

Configure a través de la interfaz web (parece tener efecto solo después de cambiar a través de la interfaz web)
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Reinicie hadoop y hbase y hue

2.7 La interfaz de usuario web de Oozie abre un error

Inserte la descripción de la imagen aquí

Solución:
descargue ext-2.2.zip

wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
mv ext-2.2.zip /var/lib/oozie
cd /var/lib/oozie
unzip ext-2.2.zip

2.8 Error de código de corrección de errores de HDFS

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Reiniciar namenode

2.9 El problema de que cloudera-scm-server no se inicia después de modificar la ip del clúster

Nota: La ip de cada nodo del clúster se almacena en la tabla HOSTS de la biblioteca donde se inicializa la base de datos (aquí está scm). Después de cambiar la ip del nodo del clúster, esta tabla se actualizará automáticamente, pero cloudera-scm-server aún no se iniciará. Es porque la configuración de
com.cloudera.cmf.db.host = cdh-1 en el archivo /etc/cloudera-scm-server/db.properties especifica la ip de cmf.db.host, que debe cambiarse.
Inserte la descripción de la imagen aquí

Capítulo 3 Optimización

echo 'vm.swappiness=10'>> /etc/sysctl.conf
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

3.1 Variables de entorno para comandos de configuración

Debido a que el directorio bin del software del clúster se encuentra en muchas capas en / opt / cloudera /, lleva mucho tiempo ejecutarlo cada vez, por lo que las variables de entorno del comando de configuración
agregan las siguientes líneas al final de / etc / archivo de perfil, y luego fuente / etc / profile

export PATH=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:$PATH
export PATH=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/zookeeper/bin:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:$PATH

Capítulo 4 Directorio después de la instalación

Todos los datos del clúster cdh se almacenan en hdfs de hadoop, y el directorio de hdfs está en / dfs /, como se muestra en la figura.
Inserte la descripción de la imagen aquí

Los directorios de registro de todo el software se encuentran en el / var / log / predeterminado.
Los directorios relacionados con el programa se encuentran en / var / lib /.
Hay algunos directorios temporales en tmp, como archivos pid y otros
archivos de configuración del clúster, y bins y otros los directorios están en / opt / cloudera / Next, como se muestra
Inserte la descripción de la imagen aquí

El directorio hbase está en el directorio raíz del sistema de archivos hdfs de hadoop, el método de vista es el siguiente
Inserte la descripción de la imagen aquí

Capítulo 5 Reinstalación del script

5.1 Script de reinstalación del nodo maestro

cat reconstruction.sh
#!/bin/bash
mysql -uroot -e "drop database db_cdh6_scm;"
rpm -e `rpm -qa|grep cloud`
rm -rf /opt/cloudera/
#rpm -e `rpm -qa|grep cloud`
rm -rf /var/lib/cloud*
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
systemctl enable cloudera-scm-server
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql db_cdh6_scm -h10.0.15.166  -uroot -p --scm-host 10.0.15.166 db_cdh6_scm scm scm
systemctl start cloudera-scm-server
rm -rf /dfs/
rm -rf /yarn
rm -rf /var/lib/hadoop-*
rm -rf /var/lib/zookeeper/
rm -rf /var/lib/hbase/
rm -rf /var/lib/flume-ng/
rm -rf /var/lib/hive/
rm -rf /var/lib/impala/
rm -rf /var/lib/spark/
rm -rf /var/lib/oozie/
cp /root/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
cp /root/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/
cp /root/manifest.json /opt/cloudera/parcel-repo/
reboot

5.2 Script de reinstalación del nodo esclavo

cat reconstruction.sh
#!/bin/bash
rpm -e `rpm -qa|grep cloud`
rm -rf /opt/cloudera/
rm -rf /var/lib/cloud*
#rpm -e `rpm -qa|grep cloud`
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
rm -rf /dfs/
rm -rf /yarn
rm -rf /var/lib/hadoop-*
rm -rf /var/lib/zookeeper/
rm -rf /var/lib/hbase/
rm -rf /var/lib/flume-ng/
rm -rf /var/lib/hive/
rm -rf /var/lib/impala/
rm -rf /var/lib/spark/
rm -rf /var/lib/oozie/
mkdir /opt/cloudera/parcel-repo/
cp /root/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
cp /root/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/
cp /root/manifest.json /opt/cloudera/parcel-repo/
chown -R cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/
reboot

Supongo que te gusta

Origin blog.csdn.net/weixin_40548182/article/details/112553224
Recomendado
Clasificación