我正在尝试为基于AVRO的表创建不同的架构。下面是命令m using。我可以看到正确的目录结构,其中包含所有带.avro扩展名的数据文件,但是当我登录HIVE&执行show tables;在retail_avro.db架构下,没有表
sqoop import-all-tables \
--m 2 \
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
--username=retail_dba \
--password=cloudera \
--warehouse-dir=/user/hive/warehouse/retail_avro.db \
--create-hive-table \
--as-avrodatafile
以下命令之后是输出,如果我使用hdfs命令访问:
[cloudera@quickstart ~]$ hdfs dfs -ls /user/hive/warehouse/retail_avro.db
Found 6 items
drwxr-xr-x - cloudera hive 0 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/categories
drwxr-xr-x - cloudera hive 0 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/customers
drwxr-xr-x - cloudera hive 0 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/departments
drwxr-xr-x - cloudera hive 0 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/order_items
drwxr-xr-x - cloudera hive 0 2016-12-30 04:26 /user/hive/warehouse/retail_avro.db/orders
drwxr-xr-x - cloudera hive 0 2016-12-30 04:26 /user/hive/warehouse/retail_avro.db/products
[cloudera@quickstart ~]$
[cloudera@quickstart ~]$
[cloudera@quickstart ~]$ hdfs dfs -ls /user/hive/warehouse/retail_avro.db/categories
Found 3 items
-rw-r--r-- 1 cloudera hive 0 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/categories/_SUCCESS
-rw-r--r-- 1 cloudera hive 1007 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/categories/part-m-00000.avro
-rw-r--r-- 1 cloudera hive 959 2016-12-30 04:25 /user/hive/warehouse/retail_avro.db/categories/part-m-00001.avro
当我登录HIVE时:
hive> use retail_avro;
OK
Time taken: 1.942 seconds
hive> show tables;
OK
Time taken: 0.518 seconds
hive> select * from departments;
FAILED: SemanticException [Error 10001]: Line 1:14 Table not found 'departments'
答案 0 :(得分:0)
您尚未在配置单元中创建表。
as" show tables;"没有归还任何东西。
请扔掉 7.2.10。将数据导入Hive link
注意:使用sqoop导入或导出数据时,您必须创建表或表。
导出到RDMS - 表必须出现
导出到HIVE - 表格可以在HDF上转储数据时创建。
去投掷https://cwiki.apache.org/confluence/display/Hive/AvroSerDe。
答案 1 :(得分:0)
Sqoop Hive导入目前与--as-avrodatafile
和--as-sequencefile
不兼容。请访问Sqoop Hive Import Documentation以获取有关它的更多信息。
avrodatafile
需要.avsc
架构,avroSerde
需要创建avro
格式表。由于您要生成avro
文件,因此您还需要avroschema
。这里Sqoop与avrodatafile
不兼容,因此--create-hive-table
参数被gettind忽略,因此Sqoop无法创建Hive表,但它会在所需目录中将数据导入.avro
格式,因为其他参数是正确的,支撑。
您仍然可以生成.avsc
架构并在相同数据上创建表。您可以按照此Sqoop avro import blog进行操作。
请访问Hive Avro SerDe documentation了解有关avrofile格式的更多信息