欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大数据-Hive(三)

程序员文章站 2022-05-01 12:14:19
...

                                     大数据-Hive(三)

Hive的交互方式

  • Hive的交互方式主要有三种
  • 使用Hive之前:
    • 先启动hadoop集群:因为hql语句会被编译成MR任务提交到集群运行;hive表数据一般存储在HDFS上。
    • mysql服务:因为对hive操作过程中,需要访问mysql中存储元数据的库及表。

Hive交互shell

在任意路径运行hive

[aaa@qq.com ~]$ hive

大数据-Hive(三)

Hive JDBC服务 

  • 启动hiveserver2服务,前台启动与后台启动方式二选一
  • 前台启动
[aaa@qq.com ~]$ hive --service hiveserver2
  • 后台启动
[aaa@qq.com ~]$ nohup hive --service hiveserver2 &

大数据-Hive(三)

  • beeline连接hiveserver2服务

若是前台启动hiveserver2,请再开启一个新会话窗口,然后使用beeline连接hive

[aaa@qq.com ~]$ beeline
beeline> !connect jdbc:hive2://node03:10000

用户名hadoop,密码为空即可。

大数据-Hive(三)

  • 帮助信息
0: jdbc:hive2://node03:10000> help

大数据-Hive(三)

  • 退出
0: jdbc:hive2://node03:10000> !quit

Hive的命

hive -e hql语句

  • 使用 –e 参数来直接执行hql语句

[aaa@qq.com ~]$ hive -e "show databases"

hive -f sql文件

使用 –f参数执行包含hql语句的文件

node03执行以下命令准备hive执行脚本

[aaa@qq.com ~]$ cd /kkb/install/
[aaa@qq.com install]$ vim hive.sql

文件内容如下

create database if not exists myhive;

通过以下命令来执行我们的hive脚本

[aaa@qq.com install]$ hive -f /kkb/install/hive.sql

查看效果,成功执行hql语句,创建myhive数据库。

Hive的数据类型

基本数据类型

类型名称 描述 举例
boolean true/false true
tinyint 1字节的有符号整数 1
smallint 2字节的有符号整数 1
int 4字节的有符号整数 1
bigint 8字节的有符号整数 1
float 4字节的有符号整数 1.0
double 8字节的有符号整数 1.0
string 字符串(不设长度) "abc"
varchar 字符串(1-65355长度,超长截断) "abc"
timestamp 时间戳 1563157873
date 日期 20190715

复合数据类

类型名称 描述 举例
array 一组有序的字段,字段类型必须相同 array(元素1,元素2) Array(1,2,3)
map 一组无序的键值对 map(k1,v1,k2,v2) Map(‘a’,1,'b',2)
struct 一组命名的字段,字段类型可以不同 struct(元素1,元素2) Struct('a',1,2,0)
  • array类型的字段的元素访问方式

    • 通过下标获取元素,下标从0开始

    • 如获取第一个元素

      • array[0]

  • map类型字段的元素访问方式

    • 通过键获取值

    • 如获取a这个key对应的value

      • map['a']

  • struct类型字段的元素获取方式

    • 定义一个字段c的类型为struct{a int, b string}

    • 获取a和b的值

      • 使用c.a 和c.b 获取其中的元素值

    • 这里可以把这种类型看成是一个对象

  • 示例:创建一张表,包含了array、map、struct类型的字段

create table complex(
         col1 array<int>,
         col2 map<string,int>,
         col3 struct<a:string,b:int,c:double>
)

 

相关标签: 大数据 hive