Hadoop之hive安装配置

5 篇文章 0 订阅

介绍

hive是在Hadoop中非常重要的角色。hive在1.2.0之前可以将编写的SQL翻译为MapReduce程序,在2.0版本后将程序翻译为Spark程序。安装前提

  1. Hadoop环境(hive不存储实际的业务数据,数据存储在HDFS上)
  2. mysql(此处hive中元数据存储在mysql)

Hadoop环境

不在赘述,可以参考博文: Hadoop之Hadoop安装

mysql环境准备

  1. 此处安装mysql版本为5.7
  2. 允许远程登录,不在赘述,可以参考博文: mysql允许root远程登录
    注意: 如果正式环境,在了解真正的风险前,还请不要允许root远程登录。
  3. 创建数据库
mysql> CREATE DATABASE `hive_db` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';

建库

安装hive

与linux下其他软件一样,下载,解压、配置。
如果不清楚兼容那个版本的Hadoop建议根据CDH提供的版本进行安装。如果资源足够使用,使用CDH安装和管理Hadoop更为简易快捷。
CDH官方版本配置

hive配置

hive-site.xml配置

[gugu@master ~]$ vim ~/application/apache-hive-2.3.6-bin/conf/hive-site.xml

添加以下内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
<property>
        <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://master:3306/hive_db?characterEncoding=UTF-8&amp;useSSL=false</value>
    <!-- 指定元数据数据库jdbc链接,注意原来链接地址上的&要修改成&amp;否者会提示&后面必须要“;”的错误 -->
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
        <!-- 初始化的时候设置检查版本,否者有可能初始化错误 -->
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <!-- 指定元数据数据库驱动类型 -->
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <!-- 元数据数据库用户名 -->
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
        <!-- 元数据数据库密码 -->
    </property>
   <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <!-- hive在HDFS存储路径 -->
  </property>
</configuration>

mysql驱动复制

在hive-site.xml中指定了驱动是mysql,我们需要将mysql的驱动复制到hive的lib下,hive才能连接mysql

[gugu@master ~]$ cp file/mysql-connector-java-5.1.47.jar ~/application/apache-hive-2.3.6-bin/lib/                      

环境变量添加

[gugu@master ~]$ vim .bash_profile

添加下面内容

 # hive
 export HIVE_HOME=/home/gugu/application/apache-hive-2.3.6-bin
 export PATH=$PATH:$HIVE_HOME/bin

启动hive

hive的启动可以包含以下方式

  1. hive直接以交互式启动

[gugu@master ~]$ hive
  1. 将hive启动为一个服务
    可以在任意一台机器上使用beeline客户端连接hive服务,进行交互式查询
# 启动元数据服务
[gugu@master ~] nohup hive --service metastore >> /home/gugu/application/apache-hive-2.3.6-bin/log/metastore/metastore.log 2>&1 &
# 启动hiveserver2
[gugu@master ~] nohup hive --service  hiveserver2 >> /home/gugu/application/apache-hive-2.3.6-bin/log/hiveserver/hiveserver.log  2>&1 &

上面命令的介绍
"nohup"可以防止终端的session关闭时,服务退出
“>>” 表示输出重定向,且以追加的方式,后面的路径是标准输出的输出路径,
“2>&1” 2表示的是错误输出,&1指标准输出,合起来就是将错误输出和标准输出到同一个文件
“&”最后面的指这条命令运行在后台

linux输出输入扩展

设备设备文件名文件描述符类型
键盘/dev/stdin0标准输入
显示器/dev/stdout1标准输出
显示器/dev/stdout2错误输出

遇见问题

  1. 启动时因为xml中&转义报错
    错误信息如下:
[Fatal Error] hive-site.xml:10:80: The reference to entity "useSSL" must end with the ';' delimiter.
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException; systemId: file:/home/gugu/application/apache-hive-2.3.6-bin/conf/hive-site.xml; lineNumber: 10; columnNumber: 80; The reference to entity "useSSL" must end with the ';' delimiter.

在这里插入图片描述
出现原因:xml中&需要转义
解决方法:将hive-site.xml中的"&“改成”&amp;"
在这里插入图片描述

  1. 启动时校验版本报错
    错误如下:
MetaException(message:Version information not found in metastore. )
        at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:83)
        at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:92)
        at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6896)
        at org.apache.hadoop.hive.metastore.HiveMetaStore.newRetryingHMSHandler(HiveMetaStore.java:6891)
        at org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:7149)
        at org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:7076)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:239)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:153)

在这里插入图片描述
解决方法:
在hive-site.xml中添加

    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
        <!-- 初始化的时候设置检查版本,否者有可能初始化错误 -->
    </property>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值