Después de instalar hadoop, hive (CDH versión) puedo ejecutar

./sqoop import -connect jdbc:mysql://10.164.11.204/server -username root -password password -table user -hive-import --hive-home /opt/hive/

Todo va bien, pero cuando entro en la colmena de la línea de comandos y ejecutar mostrar tablas, no hay nada.
Yo uso ./hadoop fs -ls, puedo ver /usuario/(nombre de usuario)/usuario existente.

Cualquier ayuda es muy apreciada.

—EDIT———–

/sqoop import -connect jdbc:mysql://10.164.11.204/server -username root -password password -table user -hive-import --target-dir /user/hive/warehouse

de importación fallar debido a :

11/07/02 00:40:00 INFO hive.HiveImport: FAILED: Error in semantic analysis: line 2:17 Invalid Path 'hdfs://hadoop1:9000/user/ubuntu/user': No files matching path hdfs://hadoop1:9000/user/ubuntu/user
11/07/02 00:40:00 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 10
        at com.cloudera.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:326)
        at com.cloudera.sqoop.hive.HiveImport.executeScript(HiveImport.java:276)
        at com.cloudera.sqoop.hive.HiveImport.importTable(HiveImport.java:218)
        at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:362)
        at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:423)
        at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
        at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
        at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:218)
        at com.cloudera.sqoop.Sqoop.main(Sqoop.java:228)
  • ¿Qué versión de Sqoop y Hadoop está en ejecución?
InformationsquelleAutor elprup | 2011-07-01

7 Comentarios

  1. 3

    Comprobar su hive-site.xml para el valor de la propiedad
    javax.jdo.opción.ConnectionURL. Si no se define explícitamente,
    el valor predeterminado se utiliza una ruta de acceso relativa para la creación de la colmena
    metastore (jdbc:derby:;databaseName=metastore_db;crear=true) que
    será diferente dependiendo de donde se inicie el proceso de.
    Esto explicaría por qué usted no puede ver la tabla a través de mostrar tablas.

    definir el valor de esta propiedad en su
    hive-site.xml el uso de una ruta de acceso absoluta

    • Creo que tienes razón. Me encontré con el mismo problema. Descubrí que podía encontrar las tablas dependiendo de donde yo lanzamiento de la colmena. GettingStart dice «Metadatos en una base de datos Derby incorporada cuya ubicación de almacenamiento de disco está determinado por la colmena de configuración variable llamada javax.jdo.opción.ConnectionURL. Por defecto (ver conf/hive-default.xml), esta ubicación es ./metastore_db». Así que por favor asegúrese de que el lanzamiento de la Colmena con la misma ubicación donde lanzamiento Sqoop. A continuación, usted encontrará sus tablas.
  2. 2

    no hay necesidad de la creación de la tabla en la colmena. consulte la siguiente consulta

    sqoop import --connect jdbc:mysql://xxxx.com/Database name --username root --password admin --table tablename (mysql table) --direct -m 1 --hive-import --create-hive-table --hive-table table name --target-dir '/user/hive/warehouse/Tablename(which u want create in hive)' --fields-terminated-by '\t'
    
  3. 1

    En mi caso Colmena almacena los datos en /user/hive/warehouse directorio en HDFS. Aquí es donde Sqoop debe poner.

    Así que supongo que tienes que añadir:

    --target-dir /user/hive/warehouse
    

    Que es la ubicación predeterminada para la Colmena tablas (pueden ser diferentes en su caso).

    También puede ser que desee para crear esta tabla en la Colmena:

    sqoop create-hive-table --connect jdbc:mysql://host/database --table tableName --username user --password password
    
    • gracias wojtek se, ¿quieres decir que siempre debo de crear colmena de la tabla antes de la colmena de la importación ?
    • incluso yo uso crear colmena de la tabla, aún no puedo ver tabla muestran la tabla de comandos.
    • no, usted tiene que crear sólo una vez – cuando imporing de datos por primera vez. Pero podría ser la opción de importación de que lo crea automáticamente.
  4. 0

    Colmena tablas será creado por Sqoop proceso de importación. Por favor, asegúrese de que el /la usuario/colmena/almacén se crea en usted HDFS. Usted puede navegar por el HDFS (http://localhost:50070/dfshealth.jspExaminar el Sistema de Archivos opción.

    También incluyen el HDFS local en el destino dir yo.e hdfs://:9000/usuario/colmena/almacén en el sqoop comando importar.

  5. 0

    Primero de todo , crear la tabla de definición de en Colmena con exacta de los nombres de campo y tipos como en mysql.

    A continuación, realice la operación de importación

    Para Subárbol De Importación

    sqoop import --verbose --fields-terminated-by ','  --connect jdbc:mysql://localhost/test --table tablename --hive-import --warehouse-dir /user/hive/warehouse --fields-terminated-by ',' --split-by id --hive-table tablename
    
    • ‘id’ puede ser la clave principal de la tabla existente
    • ‘localhost’ puede ser tu ip local
    • ‘prueba’ es la base de datos
    • ‘almacén’ directorio en HDFS
  6. 0

    en mi caso se crea una tabla en la colmena por defecto de la base de datos, usted puede darle una oportunidad.

    sqoop de importación –conectar jdbc:mysql://xxxx.com/nombre de Base de datos: nombre de usuario root –password admin –NOMBRE de la tabla –colmena-import –almacén-dir DIR –create-colmena-mesa-colmena-NOMBRE de la tabla -m 1

  7. 0

    Creo que todo lo que usted necesita es especificar la colmena de la tabla de datos donde debe ir.
    agregar "--hive-table database.tablename" a la sqoop comando y quitar el --hive-home /opt/hive/. Creo que se debería resolver el problema.

Dejar respuesta

Please enter your comment!
Please enter your name here