第八周 第3章 Hive基础使用
Hive的使用方式
1 | 操作Hive可以在Shell命令行下操作,或者是使用JDBC代码的方式操作 |
命令行方式
1 | 针对命令行这种方式,其实还有两种使用 |
hive
1 | 先看第一种,这种直接就可以连进去 |
创建表
1 | 下面以hive开头的内容就是说明我们进入了Hive的命令行中,在这里就可以写Hive的SQL了 |
添加数据
1 | hive> insert into t1(id,name) values(1,"zs"); |

查找数据
1 | hive> select * from t1; |
删除表
1 | hive> drop table t1; |
1 | 退出 |
beeline
启动hiveserver2
1 | 1.启动hiveserver2服务 |

启动beeline

1 | 注意了,启动hiveserver2服务之后,最下面会输出几行Hive Session ID的信息,一定要等到输出4行以后再使用beeline去连接,否则会提示连接拒绝 |
1 | 等待hiveserver2服务真 正启动之后再连接,此时就可以连接进去了 |
创建表、插入数据
1 | 0: jdbc:hive2://localhost:10000> create table t1(id int,name string); |
1 | 发现添加数据报错,提示匿名用户对/tmp/hadoop-yarn没有写权限 |

1 | 此时使用bin/hive命令行查看也是可以的,这两种方式维护的是同一份Metastore |
1 | 注意:在beeline后面指定hiveserver2的地址的时候,可以指定当前机器的内网ip也是可以的。(其它机器也可连) |
1 | 后面我们使用的时候我还是使用hive命令,已经习惯用这个了,还有一个就是大家如果也用这个的话,别人是不是感觉你也是老司机了,但是你要知道官方目前是推荐使用beeline命令的 |
1 | 注意了,hive后面可以使用 -e 命令,这样这条hive命令就可以放到脚本中定时调度执行了因为这样每次hive都会开启一个新的会话,执行完毕以后再关闭这个会话。 |
1 | 此时我们再把hive的bin目录配置到path环境变量中,在脚本直接使用hive或者beeline就可以了 |

JDBC方式
1 | JDBC这种方式也需要连接hiveserver2服务,前面我们已经启动了hiveserver2服务,在这里直接使用就可以了 |


1 | 开发代码,创建包名: com.imooc.hive |
代码
1 | package com.imooc.hive; |
1 | 此时直接执行运行,可能开发工具一直在下载相应的依赖包,可以通过cmd命令打jar包更快,然后应该会在maven项目的依赖包下出现,如果没有需要项目邮件手动导入 |


异常
1 | SLF4J: Class path contains multiple SLF4J bindings. |
1 | 分析上面的警告信息,发现现在是有两个log4j的实现类,需要去掉一个,还有就是缺少log4j2的配置文件,注意log4j2的配置文件是xml格式的,不是properties格式的 |
1 | 2:在项目的resources目录中增加log4j2.xml配置文件 |
Set命令的使用
1 | 在hive命令行中可以使用set命令临时设置一些参数的值, |
显示数据库名
1 | hive> set hive.cli.print.current.db = true; |
显示列属性
1 | hive (default)> select * from t1; |
1 | 这些参数属于我自己的个人习惯,所以我希望把这个配置放到我个人用户下面 |

历史命令
1 | 如果我们想查看一下hive的历史操作命令如何查看呢? |
Hive的日志配置

1 | 我们每次进入hive命令行的时候都会出现这么一坨日志,看着很恶心,想要去掉,怎么办呢? |
1 | 还有就是当我们遇到Hive执行发生错误的时候,我们要学会去查看Hive的日志信息,通过日志的提示来分析,找到错误的根源,帮助我们及时解决错误。 |
1 | 首先是 hive-log4j.properties.template 这个文件,去掉 .template 后缀,修改里面的 property.hive.log.level 和 property.hive.log.dir 参数 |
1 | [root@bigdata04 conf]# mv hive-log4j2.properties.template hive-log4j2.properties |
1 | 然后修改 hive-exec-log4j2.properties.template 这个文件,去掉 .template 后缀修改里面的 |
1 | 这样后期分析日志就可以到 /data/hive_repo/log 目录下去查看了。 |