分享

从mysql导入到hive后,看不到hive表数据

我装的是CDH5.7的hadoophive用的是CDH的内嵌的PostgreSQL做为元数据存储。

使用sqoop把mysql的表导入到hive中,导入提示是成功了,但是在hive中看到导入的表,在/user/hive/warehouse中能看到导入的HDFS文件

如下:
[hdfs@hadoop1 ~]$ sqoop import --connect jdbc:mysql://10.1.32.34:3306/dicts --username sqoop --password sqoop  -m 1 --table nodist1 --hive-import --hive-overwrite --hive-table nodist1
1.png

--查看hive中导入的mysql数据
[hdfs@hadoop1 ~]$ hadoop fs -ls /user/hive
Found 1 items
drwxrwxr-t   - hdfs hive          0 2016-06-08 09:20 /user/hive/warehouse
[hdfs@hadoop1 ~]$ hadoop fs -ls /user/hive/warehouse
Found 2 items
drwxrwxr-t   - hdfs hive          0 2016-06-08 09:20 /user/hive/warehouse/nodist1
drwxrwxr-t   - hdfs hive          0 2016-06-07 16:18 /user/hive/warehouse/nodist_old

--hdfs里是有数据的
[hdfs@hadoop1 ~]$ hadoop fs -tail /user/hive/warehouse/nodist1/part-m-00000
1521926200759广东省湛江
1521927200759广东省湛江
1521928200759广东省湛江
1521929200759广东省湛江
1501745200756广东省珠海
1501746200756广东省珠海


问题来了!
登录hive却看不到导入的default.nodist1表
[hdfs@hadoop1 ~]$ hive
16/06/08 10:19:24 WARN mapreduce.TableMapReduceUtil: The hbase-prefix-tree module jar containing PrefixTreeCodec is not present.  Continuing without it.

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/jars/hive-exec-1.1.0-cdh5.7.0.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> use default;
OK
Time taken: 1.567 seconds
hive> show tables;
OK
Time taken: 0.208 seconds, Fetched: 1 row(s)
hive>


再做一测试:
把在hive中把nodist1表创建好,再用sqoop把mysql中的数据导入,发现hive中的nodist1表还是没有数据,还只是把hdfs文件导改了,表还是空的。


谁知道是怎么回事?

已有(5)人评论

跳转到指定楼层
qcbb001 发表于 2016-6-8 10:44:04
先清空hive表,楼主尝试下面方式
sqoop create-hive-table --connect jdbc:mysql://10.1.32.34:3306/dicts --table nodist1 --username sqoop --password sqoop  -m 1   --hive-table nodist1
回复

使用道具 举报

davis987 发表于 2016-6-8 10:49:19
可以了,我是没有在安装元数据库的服务器上执行sqoop的导入操作,可能是hive表的元数据信息根本在数据库里
回复

使用道具 举报

qcbb001 发表于 2016-6-8 10:51:38
davis987 发表于 2016-6-8 10:49
可以了,我是没有在安装元数据库的服务器上执行sqoop的导入操作,可能是hive表的元数据信息根本在数据库里

楼主的意思是在hive客户端执行的?没有在hive服务端执行sqoop操作,导致的问题
回复

使用道具 举报

davis987 发表于 2016-6-8 11:00:48
qcbb001 发表于 2016-6-8 10:51
楼主的意思是在hive客户端执行的?没有在hive服务端执行sqoop操作,导致的问题

是的,就是在装有hive元数据库的服务器上执行的,这是内嵌的postgresql数据库,可能是我执行的hive客户端没有配置好hive连接元数据库吧,导致导入时无法创建元数据信息。
回复

使用道具 举报

Hentai 发表于 2016-8-4 09:36:41
学习了  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条