大数据:把HDFS上的数据导入到Hive中

Posted 测试开发鲜货

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据:把HDFS上的数据导入到Hive中相关的知识,希望对你有一定的参考价值。

工作中经常要使用各种数据源,制造测试数据就是常用的技能了。但是自己手动写sql,总觉得数据没有灵魂。mysql的数据还好一些,有官方的样例数据库,hive的我还真不了解,还好搜索到了一种从HDFS中将数据导入到hive的方法。
首先hive有自己的客户端, ./ hive,就能进入了。



下面是一些命令行操作的记录
创建数据库hive> CREATE SCHEMA qql_hive;OKTime taken: 1.022 seconds列出数据库hive> show databases;OKdefaultqql_hiveTime taken: 0.08 seconds, Fetched: 4 row(s)进入数据库hive> use qql_hive;OKTime taken: 0.145 seconds
接下来就是建表了,建表的数据,我从一个网站获取了一下。下面介绍一下这个网站。哦忘了网址http://files.grouplens.org/datasets/movielens/
MovieLens数据集由GroupLens研究组在 University of Minnesota — 明尼苏达大学(与我们使用数据集无关)中组织的。MovieLens是电影评分的集合,有各种大小。数据集命名为1M,10M和20M,是因为它们包含1,10和20万个评分。最大的数据集使用约14万用户的数据,并覆盖27,000部电影。除了评分之外,MovieLens数据还包含类似“Western”的流派信息和用户应用的标签,如“over the top”和“Arnold Schwarzenegger”。这些流派标记和标签在构建内容向量方面是有用的。内容向量对项目的信息进行编码,例如颜色,形状,流派或真正的任何其他属性 - 可以是用于基于内容的推荐算法的任何形式。

表的内容如图。

大数据:把HDFS上的数据导入到Hive中

有了表的内容,那么我们就能根据列表,创建表字段了。 external 这个关键字是外部表的意思。
外部表称之为 EXTERNAL_TABLE ;其实就是,在创建表时可以自己指定目录位置(LOCATION);如果删除外部表时,只会删除元数据不会删除表数据;

hive> create external table movies_table > ( > movieId STRING, > title STRING, > genres STRING > ) > row format delimited fields terminated by ',';OKTime taken: 13.303 secondshive>


        上面的记录,我们并没有指定目录位置。


Hive 默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下。

        

        这一步,就要我们的HDFS出场了,路径一步步点进来,就能看到我们的表名了。

大数据:把HDFS上的数据导入到Hive中

        


大数据:把HDFS上的数据导入到Hive中

        接着点进去,上传我们的数据文件。


大数据:把HDFS上的数据导入到Hive中

        

        最后,我们在hive命令行验证一下。

hive> show tables;OKmovies_tableTime taken: 0.244 seconds, Fetched: 1 row(s)hive> select * from movies_table limit 10;OKmovieId title genres1 Toy Story (1995) Adventure|Animation|Children|Comedy|Fantasy2 Jumanji (1995) Adventure|Children|Fantasy3 Grumpier Old Men (1995) Comedy|Romance4 Waiting to Exhale (1995) Comedy|Drama|Romance5 Father of the Bride Part II (1995) Comedy6 Heat (1995) Action|Crime|Thriller7 Sabrina (1995) Comedy|Romance8 Tom and Huck (1995) Adventure|Children9 Sudden Death (1995) ActionTime taken: 3.681 seconds, Fetched: 10 row(s)hive> 

        

        好了,以上就是通过hdfs将数据导入hive啦。


最近几天都没有更新,周末去和同事吃饭,给喝断片了,哎,以后真的要控制喝酒了,真的太难受了。周一又去医院补了个牙,大家一定要保护好牙齿啊,最便宜也就是症状最轻的补牙都要200多,如果严重了牙神经不保的程度那么真就是得万把块了。


        内卷分队列队,先这么多吧,多了影响阅读体验,排名无先后,没贴的大佬下次见大数据:把HDFS上的数据导入到Hive中,这次贴了下次不贴,也别见怪就是了大数据:把HDFS上的数据导入到Hive中