基于单机hdfs安装hive
Posted 小码农叔叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于单机hdfs安装hive相关的知识,希望对你有一定的参考价值。
前言
对于做大数据开发的同学来说,掌握hive是必备的技能之一,hive基于hdfs之上的一款强大的数据分析框架,可以从海量的数据中做出高效的数据分析,而且迎合大多数有着sql使用习惯的各类技术人员
话不多说,我们先基于一个单机版的hdfs环境搭建起hive的使用环境吧
环境准备
- hdfs运行环境,关于搭建可以参考我之前的一篇文章
- mysql,提前安装好mysql,这里建议使用mysql 5.7版本
- hive安装包,本例使用3.12版本的安装版本,可以自行去官网下载
安装步骤
1、上传安装包到服务器指定目录下
2、移动到指定目录,并解压重命名解压包
tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
重命名解压包
mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive
3、配置环境变量
vi /etc/profile
然后执行 :source /etc/profile
4、初始化derby数据库
hive默认情况下,不做任何配置的话,其元数据存储在内置的一款称作derby数据库中,因此需要初始化一下元数据信息
bin/schematool -dbType derby -initSchema
看到这里,说明初始化成功,然后进入到 bin 目录下,执行 ./hive 命令即可进入到hive的客户端窗口
但是当我们执行hive客户端下面的命令时,将会出现一段异常日志
show databases;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
原因在于 Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与
其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL
了解了报错的原因后,我们需要配置下hive的元数据连接信息存储在mysql中
5、配置mysql连接
进入hive的conf目录,新建一个hive-site.xml,拷贝如下的配置内容
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://IP:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
配置完成后,最好给该文件授权,然后在mysql中创建一个名字为 “metastore”的数据库,用于保存hive的元数据信息
create database metastore;
6、再次执行元数据的初始化
进入bin目录,不过这一次是使用mysql了
schematool -initSchema -dbType mysql -verbose
7、再次启动hive
再次启动hive之前,确保hdfs服务是启动的
同时,注意启动hive时不要使用root账户,因为我们之前在配置单机的hdfs的时候也不是使用root账户而是自己创建的账户,hive操作是需要联通hdfs的,这里需要重点关注一下
然后就可以基于当前的命令窗口像操作mysql那样执行hive的客户端命令了
创建完表之后,就可以在hdfs上面看到表的相关数据文件啦
以上是关于基于单机hdfs安装hive的主要内容,如果未能解决你的问题,请参考以下文章