Tengo una tabla externa creada en hive con ubicación predeterminada
CREATE EXTERNAL TABLE `testtable`(
`id` int,
`name` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ","
STORED AS INPUTFORMAT
"org.apache.hadoop.mapred.TextInputFormat"
OUTPUTFORMAT
"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
LOCATION
"<hdfs-uri>/hive/warehouse/testtable"
¿Desearía confirmar si puedo mover un archivo de texto que contenga los valores de ID / nombre de la ubicación local a HDFS /hive/warehouse/testtable/test.txt para la tabla de prueba de la tabla externa? Gracias.
Respuestas
0 para la respuesta № 1Sí. Puedes subir test.txt
de local
al HDFS
ubicación para mesa externa testtable
(<hdfs-uri>/hive/warehouse/testtable
). Esto funcionará incluso si <hdfs-uri>/hive/warehouse/
es el predeterminado Hive
Directorio del almacén.
Solo para tener en cuenta - Para no externos (llamados Gestionado por colmenas) mesas, al caer la mesa se caerá su almacén HDFS
directorio de forma automática. por externo mesa, dejando caer la mesa no caerá la HDFS
el directorio lo respalda, y debe eliminarse como una operación separada.
Ilustración:
Here the Hive warehouse directory is hdfs:///apps/hive/warehouse
Crear mesa
hive> CREATE EXTERNAL TABLE `testtable`(
`id` int,
`name` string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ","
STORED AS INPUTFORMAT
"org.apache.hadoop.mapred.TextInputFormat"
OUTPUTFORMAT
"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
LOCATION "hdfs:///apps/hive/warehouse/testtable";
Datos en test.txt
1,name-1
2,name-2
3,name-3
Subir datos a HDFS
hadoop fs -put test.txt hdfs:///apps/hive/warehouse/testtable
Tabla de consulta
hive> select * from testtable;
1 name-1
2 name-2
3 name-3