HBase(十)整合Hive

Hive的安装部署

先决条件

  • 搭建好三节点Hadoop集群;
  • hadoop100上先安装好MySQL服务;

准备安装包

  • 下载hive安装包 apache-hive-3.1.2-bin.tar.gz
  • 规划安装目录 /opt/pkg/hive
  • 上传安装包到hadoop100服务器中

解压

解压安装包到指定的规划目录/opt/pkg/

修改配置文件

  1. 进入hive安装目录

  1. 重新命名hive目录

  1. 修改/opt/pkg//conf目录下的hive-site.xml, 默认没有该文件, 需要手动创建

  1. 进入编辑模式, 文件内容如下

  1. 修改日志配置文件hive-log4j.properties

创建hive日志存储目录

重命名生成文件hive-log4j.properties

修改此文件的hive.log.dir属性的值

拷贝mysql驱动包

上传mysql驱动包,如mysql-connector-java-5.1.38.jar/opt/download/目录中

由于运行hive时,需要向mysql数据库中读写元数据,所以需要将mysql的驱动包上传到hive的lib目录下

解决日志Jar包冲突

配置Hive环境变量

打开/etc/profile文件

末尾添加如下内容

使修改生效

初始化元数据库

  1. 新建一个hadoop100连接, 登录MySQL

  1. 创建hive元数据, 需要和hive-site.xml中配置的一致

  1. 退出mysql

  1. 初始化元数据库

看到schemaTool completed 表示初始化成功

验证安装

  • hadoop集群已启动
  • mysql服务已启动
  • 在hadoop100上任意目录启动hive cli命令行客户端

查看有哪些数据库

说明hive安装成功

退出cli

HBase与Hive整合配置

拷贝jar包

将我们HBase的五个jar包拷贝到hive的lib目录下
hbase的jar包都在/opt/pkg/hbase/lib
我们需要拷贝五个jar包名字如下

  • 在hadoop100执行以下命令

如果发现hive/lib已经存在相同jar包(大版本相同即可),也可以先不拷贝。

修改hive的配置文件

编辑hadoop100服务器上面的hive的配置文件hive-site.xml

添加以下两个属性的配置

修改hive-env.sh配置文件

  • 添加以下配置

需求一:将hive表当中分析的结果保存到hbase表当中去

hive当中建表

  • hadoop100执行以下命令,进入hive客户端,并创建hive表

创建hive数据库与hive对应的数据库表

准备数据内容如下并加载到hive表

hadoop100执行以下命令,创建数据文件

文件内容如下

vim编辑时 :set noexpandtab关闭将tab转换成空格的设置,输入时使用制表符作为分隔符
可以:set list用来查看制表符(^I)和换行($)

进入hive客户端进行加载数据

创建hive管理表与HBase进行映射

我们可以创建一个hive的管理表与hbase当中的表进行映射,hive管理表当中的数据,都会存储到hbase上面去

hive当中创建内部表

通过insert overwrite select 插入数据

hbase当中查看表 hbase_score

进入hbase的客户端查看表hbase_score,并查看当中的数据

需求二:创建hive外部表,映射HBase当中已有的表模型

HBase当中创建表并手动插入加载一些数据

进入HBase的shell客户端,

手动创建一张表,并插入加载一些数据进去

建立hive的外部表,映射HBase当中的表以及字段

在hive当中建立外部表

进入hive客户端,然后执行以下命令进行创建hive外部表,就可以实现映射HBase当中的表数据

查看hive表course.hbase2hive

Views: 15