Uno: Introducción a sqoop
- sqoop es una herramienta diseñada para transferir de manera eficiente cantidades masivas de datos. Generalmente se usa para sincronizar datos de una base de datos relacional a una base de datos no relacional.
- Utilice sqoop para importar y exportar datos, que esencialmente ejecuta el programa Mapreduce, haciendo un uso completo de la paralelización y la tolerancia a fallas de MR.
- Sqoop admite actualizaciones incrementales, agregando nuevos registros a la fuente de datos exportada más recientemente.
Dos: uso de sqoop
Obtener el nombre de la base de datos en la base de datos MySQL
sqoop list-database
-connect 'jdbc:mysql://10.1.96.xx:3306'
-username test
-password test
Obtenga los nombres de todas las tablas en una determinada base de datos de la base de datos sqlserver
sqoop list-tables
connect'jdbc:sqlserver://192.168.12.xx:1433;database=pems;
username=sa;password=v3pems@2020'
sqoop importa todas las tablas en una base de datos en la base de datos de Oracle en Hive
sqoop import-all-tables
-connect jdbc:oracle:thin:@10.89.142.207:1521:orcl
-username scott -password tiger -hive-database eda
-hive-import -create-hive-table -m 1
Utilice Sqoop para ejecutar la declaración SQL
sqoop eval -connect 'jdbc:sqlserver://192.168.12.65:1433;database=PEMS_DATA;
username=sa;password=V3pems@2021' -query'select count(*) from rep_energy_tar'
Tres: comandos de operación comunes de sqoop
Usar descripción de parámetro
Importación de datos: importación de sqoop
La descripción del parámetro se puede ver a través del comando sqoop import --help
Parámetros comunes
- --Connect especifica la cadena de conexión JDBC
- --Connection-manager especifica el nombre de la clase del administrador de conexiones
- --Connection-param-file especifica el archivo de parámetros de conexión
- - El controlador especifica manualmente la clase de controlador JDBC que se utilizará
- --Hadoop-home anula el parámetro $ HADOOP_MAPR ED_HOME_ARG
- –Cubierta de casa mapeada de Hadoop $ HADOOP_MAPR ED_HOME_ARG argumentos
- - Ayuda a imprimir instrucciones
- : Nivel de aislamiento de transacciones de metadatos Definir el nivel de aislamiento de transacciones para la consulta de metadatos
- --Oracle-escaping-disabled Deshabilita el mecanismo de escape del administrador de conexiones de Oracle / OraOop
- -P leer la contraseña de la consola
- --Contraseña establecida verificación de contraseña
- --Password-alias alias de la contraseña del proveedor de credenciales
- - Autenticación de conjunto de archivo de contraseña en la ruta del archivo de contraseña
- - Aislamiento relajado utiliza aislamiento de lectura sin mi para las importaciones
- --Skip-dist-cache Omite copiar el archivo jar a la caché distribuida
- --Temporary-rootdir define el directorio raíz temporal para las importaciones
- --Throw-on-error Rethrow RuntimeException cuando ocurre un error durante el trabajo
- - Nombre de usuario establece el nombre de usuario para la autenticación
- - Imprime más información detalladamente mientras trabajas
Parámetros de control importados
- --Anexar datos de importación en modo anexar
- --As-avrodatafile importará datos al almacenamiento de archivos avro
- --As-parquetfile importará datos al almacenamiento de archivos de parquet
- --As-sequencefile importará datos como almacenamiento de archivos SequenceFile
- --Como archivo de texto Importar datos en forma de texto sin formato (predeterminado)
- --Autoreset-to-one-mapper Si no hay una clave de división disponible, restablezca el número de mapeadores a un mapeador
- - Consulta de límites establece consulta de límites, recupera los valores máximo y mínimo de la clave principal
- --Las columnas <col, col, col…> especifican las columnas que deben importarse
- --Compression-codec El códec de compresión utilizado para la importación
- --Delete-target-dir Importar datos en modo de eliminación (si el archivo de destino existe, eliminar y luego importar. Si no se especifica, si la ruta de destino existe, se informará un error)
- - Ruta rápida de importación directa de uso directo
- --Direct-split-size Al importar en modo directo, divida el flujo de entrada por "n" bytes
- -e, -query importa el resultado de la "instrucción" SQL
- --Fetch-size Cuando se necesitan más filas, establezca el número de filas recuperadas de la base de datos 'n' y establezca el tamaño máximo de LOB en línea
- -m, --num-mappers Usa n tareas de mapa para importar en paralelo. El paralelismo predeterminado es 4
- --Mapreduce-job-name establece el nombre del trabajo mapreduce generado
- --Clave de combinación que se usará para la columna Clave del resultado combinado (se usa para combinar datos repetidos durante la importación incremental)
- : Se utiliza para dividir la columna de la tabla de unidades de trabajo
- --Split-limit El límite superior de la división de filas para cada columna dividida de fecha / hora / marca de tiempo y tipo de entero. Para los campos de fecha o marca de tiempo, se calcula en segundos. El límite de división debe ser mayor que 0
- --Table El nombre de la tabla leída (la tabla que se va a importar)
- --Target-dir La ruta de destino donde se almacena la tabla importada en HDFS
- - Validar Utilice el validador configurado para validar la copia
- - Validation-failurehandler ValidationFailureHandler nombre de clase completo
- --Validation -reshold Nombre de clase completamente calificado de ValidationThreshold
- - Validator Validator nombre de clase completamente calificado
- - Ruta principal del directorio de almacén para importar hdfs
- - Dónde se usa el filtrado de condiciones WHERE al importar
- -z, --compress habilita la compresión
Parámetros de importación incrementales
- --Columna de origen de columna de verificación para verificar cambios incrementales
- - Incremental define la importación incremental con el tipo "append" o "lastmodified"
- - Último valor Verifica de forma incremental el último valor importado en la columna
Parámetros de formato de línea de salida
- --Enclosed-by establece el carácter adjunto del campo requerido
- - Escapado por el carácter de escape establecido
- --Fields-terminted-by set field separator (campos-terminados-por establecer separador de campos
- --Líneas terminadas por un conjunto de caracteres de final de línea
- --Mysql-delimiters Use el conjunto de delimitadores predeterminado de MySQL: campo :,; línea: \ n; carácter de escape: \; delimitador de campo: '
- --Opcionalmente-encerrado por establece el campo que contiene los caracteres
Ingrese los parámetros de análisis
- --Input-enclosed-by establece la máscara de campo requerida
- --Input-escaped-by set input escape character
- --Input-fields-terminted-by set input field separator
- --Líneas de entrada terminadas por establecer el carácter final de la línea de entrada
- - Campos de conjunto de entrada-opcionalmente-encerrados por que contienen caracteres
Parámetros de Hive
- --Create-hive-table crea automáticamente una tabla de Hive al importar. Si la tabla de Hive de destino existe, falla
- --Hive-database Establece el nombre de la base de datos que se utilizará al importar a la colmena
- --Hive-delims-replacement reemplaza el registro de Hive \ 0x01 y el separador de línea (\ n \ r) en el campo de cadena importada con una cadena definida por el usuario
- --Hive-drop-import-delims elimina el registro de Hive \ 0x01 y el separador de línea (\ n \ r) del campo de cadena importado
- --Hive-home anula el parámetro de configuración $ HIVE_HOME
- --Hive-import Importa la tabla a Hive (si no se establece ningún separador, se usa el separador predeterminado de Hive)
- --Suprimir colmena sobrescribir datos existentes en la tabla de colmena (sobrescribir importación)
- --Hive-partition-key Establece la clave de partición que se utilizará al importar a la colmena
- --Hive-partition-value Establece el valor de la partición que se utilizará al importar a la colmena.
- --Hive-table Establece el nombre de la tabla que se utilizará al importar a la colmena
- --Map-column-hive Anula la asignación de la columna especificada al tipo de colmena
Parámetros de HBase
- --Column-family establece la familia de columnas de destino importada
- --Hbase-bulkload habilita la carga masiva de HBase
- --Hbase-create-table Si se especifica, crea la tabla HBase que falta
- --Hbase-row-key especifica qué columna de entrada usar como clave de fila
- --Hbase-table El nombre de la tabla importada a HBase
referencias:
https://zhuanlan.zhihu.com/p/163266351