分享

求教一个hive建表的小问题

Wyy_Ck 发表于 2017-2-6 10:19:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 6386
在hive通过load导入数据:
[mw_shl_code=shell,true]hive> load data local inpath '/opt/hadoop/sample.txt' overwrite into table employee;
Loading data to table userdb.employee
OK
Time taken: 0.849 seconds
hive> select * from employee;
OK
NULL        NULL
Time taken: 1.564 seconds, Fetched: 1 row(s)[/mw_shl_code]

[mw_shl_code=shell,true][hadoop@master hadoop]$ hadoop fs -cat /user/hive_remote/warehouse/userdb.db/employee/sample.txt
1111  lining[/mw_shl_code]


为什么表的数据是空的呢  刚入门不久,谢谢哈

已有(7)人评论

跳转到指定楼层
hyj 发表于 2017-2-6 10:49:27
建表的分隔符,与导入的文件分隔符可能不一致造成的,特别是 空格和跳格符。
回复

使用道具 举报

Wyy_Ck 发表于 2017-2-6 10:52:14
这个解决了,是建表出现了问题。数据插入OK 了
[mw_shl_code=shell,true]Loading data to table default.tb_test_insertfile
OK
Time taken: 0.664 seconds
hive> select * from tb_test_insertFile;
OK
1        name1        24
2        name2        20
3        name3        40
Time taken: 1.114 seconds, Fetched: 3 row(s)
hive> [/mw_shl_code]


问题1:我记得以前看过 执行HQL相当于执行MR任务,会有part_类似这种文件生成吗?

目前只有如下:

[mw_shl_code=shell,true][root@master test]# hadoop fs -ls /user/hive_remote/warehouse/tb_test_insertfile
Found 1 items
-rwxr-xr-x   2 hadoop supergroup         33 2017-02-06 10:45 /user/hive_remote/warehouse/tb_test_insertfile/input.txt[/mw_shl_code]

问题2: 这个存储的hadoop的数据  需要如何设置才能在mysql客户端看到这个表呢?

感谢感谢

回复

使用道具 举报

Wyy_Ck 发表于 2017-2-6 10:56:39
hyj 发表于 2017-2-6 10:49
建表的分隔符,与导入的文件分隔符可能不一致造成的,特别是 空格和跳格符。

对的, 后面注意就好了  谢谢
回复

使用道具 举报

Wyy_Ck 发表于 2017-2-6 11:01:42
Wyy_Ck 发表于 2017-2-6 10:52
这个解决了,是建表出现了问题。数据插入OK 了
[mw_shl_code=shell,true]Loading data to table default.t ...

针对问题2  还需要使用sqoop工具 来导入mysql吗  会自动吗?
回复

使用道具 举报

w517424787 发表于 2017-2-6 11:15:14
Wyy_Ck 发表于 2017-2-6 10:52
这个解决了,是建表出现了问题。数据插入OK 了
[mw_shl_code=shell,true]Loading data to table default.t ...

你是通过 load data local inpath... 的方式导入数据到hive表中的,是不会产生part_这样的文件的,直接将导入的文件移到hive表在hdfs的相应目录下。要想在mysql中看到hive的表元数据信息,就得配置hive的元数据存入到mysql中,在hive的conf下配置hive-site.xml配置文件,网上有相关内容!
回复

使用道具 举报

Wyy_Ck 发表于 2017-2-6 11:43:53
w517424787 发表于 2017-2-6 11:15
你是通过 load data local inpath... 的方式导入数据到hive表中的,是不会产生part_这样的文件的,直接将 ...

这个已经配置OK了。 我再TBLS表下面找到了所建表的信息,包括ID  createtime、owner、TBL_NAME等字段,这写都是表的描述信息。即所谓的元数据吗?


其实我想问 表中真实的数据怎么没有在mysql显示查询 ?


是配置还是需要使用sqoop呢?
回复

使用道具 举报

w517424787 发表于 2017-2-6 13:27:45
Wyy_Ck 发表于 2017-2-6 11:43
这个已经配置OK了。 我再TBLS表下面找到了所建表的信息,包括ID  createtime、owner、TBL_NAME等字段,这 ...

你想在Mysql中查询hive表中的数据,那是得通过sqoop将hive表中数据抽取到mysql中,不能直接在mysql中查询的!
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条