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
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
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
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
No elija aquí, porque jdk ya está instalado
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
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.
Haga clic en Verificar, siga el orden, verifique el resultado después de verificar.
Haga clic en Mostrar todos los hosts
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
Paso omitido 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
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
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
Reinicie hbase y hue
2.6 hbase no puede hacerse pasar por administrador
Presione F12 para abrir la interfaz de depuración del navegador, y el error se informa de la siguiente manera
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)
2. Reinicie hadoop y hbase y hue
2.7 La interfaz de usuario web de Oozie abre un error
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
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.
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.
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
El directorio hbase está en el directorio raíz del sistema de archivos hdfs de hadoop, el método de vista es el siguiente
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