hadoop hive thrift

hadoop - Error de Hive al crear una tabla externa(estado=08S01, código=1)



thrift (1)

Estoy intentando crear una tabla externa en Hive, pero sigo recibiendo el siguiente error:

create external table foobar (a STRING, b STRING) row format delimited fields terminated by "/t" stored as textfile location "/tmp/hive_test_1375711405.45852.txt"; Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask (state=08S01,code=1) Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask (state=08S01,code=1) Aborting command set because "force" is false and command failed: "create external table foobar (a STRING, b STRING) row format delimited fields terminated by "/t" stored as textfile location "/tmp/hive_test_1375711405.45852.txt";"

Los contenidos de /tmp/hive_test_1375711405.45852.txt son:

abc/tdef

Me estoy conectando a través de la interfaz de línea de comando beeline , que usa Thrift HiveServer2 .

Sistema:

  • Hadoop 2.0.0-cdh4.3.0
  • Colmena 0.10.0-cdh4.3.0
  • Beeline 0.10.0-cdh4.3.0
  • SO cliente - Red Hat Enterprise Linux Server versión 6.4 (Santiago)

El problema era que estaba señalando la tabla externa en un archivo en HDFS en lugar de un directorio. El mensaje de error críptico Hive realmente me tiró.

La solución es crear un directorio y poner el archivo de datos allí. Para solucionar este problema en el ejemplo anterior, crearía un directorio en /tmp/foobar y colocaría hive_test_1375711405.45852.txt en él. Luego crea la tabla como así:

create external table foobar (a STRING, b STRING) row format delimited fields terminated by "/t" stored as textfile location "/tmp/foobar";