基于单机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的主要内容,如果未能解决你的问题,请参考以下文章

Impala篇---Hue从初始到安装应用

初始Hive

Hive_进阶

Hive_初步见解,安装部署与测试

HADOOP docker:安装hive

Hive学习——单机版Hive的安装