job exportar mysql hadoop sqoop

mysql - exportar - sqoop job



Sqoop Import-la funciĆ³n de archivo de contraseƱa no funciona correctamente en sqoop 1.4.4 (6)

No estoy seguro de si todavía tienes este problema. El archivo de contraseña puede estar en cualquier carpeta. Pruebe la siguiente sintaxis y debería funcionar:

--password-file file:///user/root/database.password

Estoy usando hadoop-1.2.1 y la versión de sqoop es 1.4.4.

Estoy tratando de ejecutar la siguiente consulta.

sqoop import --connect jdbc:mysql://IP:3306/database_name --table clients --target-dir /data/clients --username root --password-file /sqoop.password -m 1

sqoop.password es un archivo que se guarda en HDFS en la ruta /sqoop.password con el permiso 400.

Me está dando un error

Access denied for user ''root''@''IP'' (using password: YES)

¿Alguien puede proporcionar una solución para esto? Gracias por adelantado.


Compruebe si hay algún carácter de basura en su archivo de contraseña. Obtuve el mismo problema y finalmente encontré que el archivo contenía / n un carácter al final y sqoop lo consideró también como parte de la cadena de contraseña. Intente crear un archivo de contraseña como se menciona a continuación y utilice el archivo de contraseña: echo -n "contraseña_raíz"> contraseña.txt Coloque su contraseña en lugar de la contraseña_raíz.


"/ n" se está escribiendo en un archivo cuando vi el archivo y escribe la contraseña. Es mejor utilizar el enfoque a continuación para evitar problemas

echo -n "Your_sqoop_password" > sqoop.password


  1. Verifique que el usuario que ejecuta el comando sqoop es el propietario del archivo /sqoop.password (que tiene los 400 permisos configurados). Esto asegurará que el archivo de contraseña sea legible.

  2. Asegúrese de que el archivo sqoop.password no tenga caracteres adicionales que no sean de impresión al final (por ejemplo, un carácter de nueva línea). Una manera fácil de verificar esto es observar el tamaño del archivo. Si la contraseña es ''sqoop'' , el tamaño del archivo debe ser 5. Si es más grande, elimine el archivo sqoop.password de HDFS, sqoop.password localmente y vuelva a colocarlo en HDFS.

    El comando que debe informar las piezas de información anteriores es:

    hadoop fs -ls /sqoop.password


Al crear la contraseña, use echo -n opción echo -n . (la opción -n elimina todos los espacios finales).
Supongamos que tiene una contraseña "myPassword" y desea guardarla en un archivo sqoop.password , luego siga los pasos a continuación:

  1. Crear contraseña usando el comando

    echo -n "myPassword" > sqoop.password

  2. Cargue el archivo a HDFS ya que el archivo debe estar presente en HDFS

    hadoop fs -put sqoop.password /user/keepMyFilesHere

  3. Escribe el comando de importación de pala

    sqoop list-tables --connect jdbc:mysql://localhost/kpdatabase --username root --password-file /user/karanpreet.singh/sqoop.password

¡Esto definitivamente funcionará!


Según la documentación de sqoop

Debe guardar la contraseña en un archivo en el directorio de inicio de los usuarios con 400 permisos y especificar la ruta a ese archivo con el --password-file argument , y es el método preferido para ingresar credenciales. Sqoop leerá la contraseña del archivo y la pasará al clúster MapReduce utilizando medios seguros sin exponer la contraseña en la configuración del trabajo. El archivo que contiene la contraseña puede estar en el Local FS o HDFS.

Si estoy ejecutando mi trabajo de sqoop con usuario root, mi archivo de contraseña estará en /user/root/ en HDFS

sqoop import --connect jdbc:mysql://database.example.com/employees / --username venkatesh --password-file /user/root/database.password

Para más detalles, puedes verificar esto