Tabla de contenido
Proceso de resolución de problemas uno
Proceso de resolución de problemas dos
1. Escenario de problemas
Instale el clúster Ambari + HDP, modifique el puerto predeterminado de MySQL, no hay ningún problema durante la instalación, Ranger Admin informa el siguiente error al iniciar:
Descripción del problema: en la página de Ambari, al instalar el componente Ranger, el puerto de la base de datos MySQL utilizada en segundo plano se modificó a: puerto 3306 no predeterminado. Se informó un error al iniciar y reiniciar el componente Ranger:
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
falta el número de puerto: 3906, que en realidad debería ser:...... jdbc:mysql://namenode:3906/ranger ......
El error final es el siguiente:
Causado por: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure De acuerdo con esta información para resolver el problema, no se encontró la causa raíz del problema después de un desvío.
Dos, la solucion
Proceso de resolución de problemas uno
Al principio, realmente pensé que era la razón del tiempo de espera de la conexión de MySQL, pero todavía no estaba seguro, porque antes no había ningún problema con el puerto predeterminado de MySQL.
Causado por: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falla del enlace de comunicaciones
Cuando la base de datos se reinicia o la conexión inactiva de la base de datos excede el tiempo de espera máximo establecido , la base de datos desconectará a la fuerza el enlace existente. El tiempo de espera máximo se puede show global variables like "wait_timeout";
consultar mediante el comando :
mysql> show global variables like "wait_timeout";
+---------------+-------+
| VARIABLE_NAME | VALUE |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
Pero después de hacer la configuración anterior, la volví a cambiar sin mí y descarté esta posibilidad, así que pensé que era un pozo de Ranger, así que busqué en Internet y alguien lo encontró.
Proceso de resolución de problemas dos
El gran pozo de un mbari en el guardabosques ---- El puerto predeterminado es 3306, que debe modificarse manualmente
Cuando ambari instala el guardabosques, debe conectarse a la base de datos. Se usa la base de datos mysql. En este momento, debe ingresar el nombre de usuario raíz de la base de datos y la contraseña, porque necesita conectarse al usuario raíz para crear un nuevo usuario y base de datos
El problema radica aquí, porque el entorno de producción ha cambiado el puerto predeterminado de MySQL, pero el script de inicio del guardabosques usa el puerto predeterminado de MySQL.
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
Falta el número de puerto: 33066, que en realidad es:...... jdbc:mysql://namenode:33066/ranger ......
Entonces ingresé el script de inicio: vim /usr/hdp/current/ranger-admin/db_setup.py, busqué la ubicación de jisql_cmd y encontré el lugar de jdbc: mysql: // y lo modifiqué manualmente. La versión de Ambari es diferente y la ubicación de jdbc: myql puede ser diferente.
Recuerde: es el puerto MySQL modificado después del primer% s
Posible problema : vim /usr/hdp/current/ranger-admin/db_setup.py no se puede guardar después de editar el archivo, es de solo lectura, puede probar sudo vim para ingresar al archivo con privilegios de root.