摘要:hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。 虽然是分布式软件,但我们只需要在一台机器上部署即可

环境准备

健康完善的hadoop集群环境、MySql

安装

Hive下载链接,下载bin包 hive下载

配置修改

版本统一

确保hadoop_home/share/hadoop/common/lib目录下的的guava包版本与hive_home/lib目录下的guava包版本一致。 因为hadoop在多台机器上部署,而hive在一台机器上部署,所以推荐用hadoop的guava覆盖hive

hive.sh

路径:hive_home/conf/hive.sh

export HADOOP_HOME=$HADOOP_HOME
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

hive-site.xml

路径:hive_home/conf/hive-site.xml

没有就新建一个

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
        <!-- H2S运行绑定host -->
        <property>
                <name>hive.serve2.thrift.bind.host</name>
                <value>nn</value>
        </property>
        <!-- 远程部署matestore 地址 -->
        <property>
                <name>hive.metastore.uris</name>
                <value>thrift://nn:9083</value>
        </property>
        <!-- 关闭元数据存储授权 -->
        <property>
                <name>hive.metastore.event.db.notification.api.auth</name>
                <value>false</value>
        </property>
        <!-- mysql配置(不要换行) -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://nots.fun:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
        <!--mysql驱动-->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.cj.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>
</configuration>

jdbc驱动

在官网进行下载,放入hive下的lib包 jdbc驱动下载

hive环境变量

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

hive启动

初始化

schematool -initSchema -dbType mysql -verbos 完成后会在数据库创建74张表

在hdfs创建hive存储文件(选做,后面会自动创建)

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse 

linux使用screen启动m服务

metastore

screen -S metastore --创建screen
hive --service metastore --启动服务
ctrl+a+d 退出screen

hiveserver2

screen -S hiveserver2 --创建screen
hive --service hiveserver2 --启动服务
ctrl+a+d 退出screen

启动连接

连接地址为:jdbc:hive2://主机地址:10000 用户密码为启动hive的主机用户密码

问题

如果出现未经授权的超级用户报错,尝试在hive-site.xml添加

<property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
</property>

hive.server2.enable.doAs设置成false,则yarn作业获取到的hiveserver2用户都为hive用户。 设置成true则为实际的用户名