Hive 通过日期计算星座实例
【实验目的】
1) 掌握Hive的数据类型
2) 掌握hive的查询语句的使用
3) 掌握用户自定义函数的使用
4) 掌握编写UDF的方法
【实验原理】
Hive支持多种不同长度的整型和浮点型数据类型,支持布尔类型,也支持无长度限制的字符串类型。
Hive中的列支持使用struct,map和array集合数据类型。
查询语句是所有数据库都包括的,并且很常用,所以需要熟练掌握。
用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。正如我们将看到的,用户使用Java进行编码。一旦将用户自定义函数加入到用户会话中(交互式的或者通过脚本执行的),它们就将和内置的函数一样使用,甚至可以提供联机帮助。Hive具有多种类型的用户自定义函数,每一种都会针对输入数据执行特定“一类“的转换过程。
在ETL处理中,一个处理过程可能包含多个处理步骤。Hive语言具有多种方式来将上一步骤的输入通过管道传递给下一个步骤,然后在一个查询中产生众多输出。用户同样可以针对一些特定的处理过程编写自定义函数。如果没有这个功能,那么一个处理过程可能就需要包含一个MapReduce步骤或者需要将数据转移到另一个系统中来实现这些改变。互联系统增加了复杂性,并且增加了配置错误或其他错误的发生几率。当数据量是GB甚至TB级别时,在不同系统中转移数据,需要消耗大量的时间。与此相反,UDF是在Hive查询产生的相同的task进程中执行的,因此它们可以高效地执行,而且其消除了和其他系统集成时所产生的复杂度。
【实验环境】
本次环境是:centos6.5+jdk1.7.0_79+hadoop-2.4.1+hive-0.12.0
【实验步骤】
一、数据准备
1.1 创建对应的表需要的数据文件data.txt。在/simple目录下执行命令vim data.txt并编辑内容。如图1所示
图1
1.2 创建对应的表。在创建表时,先启动mysql 执行命令service mysql start,具体操作前面实 验已经讲过。再确定hadoop服务已经启动,否则执行start-all.sh命令,然后执行命令: cd /simple/hive-0.12.0/bin进入hive的安装目录bin目录下执行命令./hi