08 – Hive 3.1.2 安装

官方手册

GettingStarted

Manual

1.安装及配置 Hive

(1)把 Hive 的安装包 apache-hive-3.1.2-bin.tar.gz 上传到 Linux 虚拟机的/opt/download目录下, 解压

(2)将解压的文件夹移动到/opt/pkg下,同时改名为hive

(3)修改/etc/profile.d/hadoop.env.sh 文件,添加环境变量。

添加以下内容。

执行以下命令使环境变量生效。

(4)进到/opt/module/hive/lib 目录下执行以下命令,解决日志 jar 包冲突。

(5)解决guava版本低于hadoop版本的问题

删除或改名lib下较低版本的guava的jar包

从hadoop目录将guava的jar包拷贝或者软链接过来

如果不处理,初始化MySQL元数据的时候就会出错。

2.驱动复制

(1)将mysql-connector-java-5.1.27.tar 驱动包拷贝到Hive的lib目录。

3.配置

(1)在/opt/module/hive/conf 目录下创建一个 hive-site.xml 文件

(2)配置如下

配置详情见官方文档

4.初始化元数据库

(1)启动 MySQL。

(2)新建 Hive 元数据库(metastore)。

(3)初始化 Hive 元数据库。

5.启动 Hive

(1)Hive 2.x 以上版本,要先启动 Metastore 和 Hiveserver2 服务,否则会报错。

(2)在/opt/pkg/hive/bin 目录下编写 Hive 服务启动脚本,在脚本中启动 Metastore 和 Hiveserver2 服务。

(3)增加脚本执行权限。

(4)启动 Hive 后台服务。

(5)查看 Hive 后台服务运行情况。

需要多试几次,因为服务从启动直到进程出现需要等待约一分钟左右时间。

(6)启动 Hive 客户端。

6. 日志

hive和beeline工具的日志默认在/tmp/<操作用户名>下生成,

如果希望执行命令时实时看到日志,也可以创建conf/hive-log4j2.properties以及conf/beeline-log4j2.properties(有模板)

  • 日志存放位置可以修改

    • property.hive.log.dir = /opt/pkg/hive/logs/
      property.hive.log.file = hive.log
  • 默认日志级别是info,会导致hive客户端中输出很多不必要的信息

    • 但是修改级别后并没有效果

hive服务器日志可以查看

7. beeline 使用示例

Hive客户端工具后续将使用Beeline 替代HiveCLI ,并且后续版本也会废弃掉HiveCLI 客户端工具,Beeline是 Hive 0.11版本引入的新命令行客户端工具,它是基于SQLLine CLI的JDBC客户端。

beeline连接hiveserver2

类似hive-cli 的执行脚本功能

beeline支持的操作

type command !help in beeline terminal

output:

常用的几个command

  • !connect url –连接不同的Hive2服务器
  • !exit –退出shell
  • !help –显示全部命令列表
  • !verbose –显示查询追加的明细

5. 异常处理

一般hiverServer2的启动比较花时间,需等待5分钟左右才能启动,如果长时间还没有启动需要查看日志寻找失败原因

启动hiveserver2报错 1

Hive启动hiveserver2报错:Could not open client transport with JDBC Uri解决方案

报错信息:

原因:hiveserver2增加了权限控制,需要在hadoop的配置文件中配置代理用户

解决方案

关闭dfs和yarn

在hadoop的core-site.xml中添加如下内容(其中hadoop为允许作为代理用户的用户及用户组)

重启dfs

重启yarn

重新连接Hive

启动hiveserver2报错 2

若日志中发现如下异常信息:

说明我们的损坏的文件比例超过了阈值, 这个阈值配置在hdfs中, 也就是说不允许任何一个块损坏掉. 如果我们配置成99%应该就不会触发safemode了.
由于系统断电,内存不足等原因导致dataNode丢失超过设置的丢失百分比,系统自动进入安全模式

解决办法

执行命令退出安全模式:

执行健康检查,删除损坏掉的block
hdfs fsck  /  -delete

运行后如果出现下面提示,表示修复完毕

如果没有修复则可以多执行一次hdfs fsck命令

beeline下无法导入hbase表

改为使用bin/hive就可以导入了, 可能是BUG。

Views: 43