什么是hive
hive是一个构建在hadoop上的数据仓库框架,是应facebook每天产生的海量新兴社会网络数据进行管理和(机器)学习的需求而产生和发展的,其设计目的是让精通sql技能但java编程技能较弱的分析师能够对facebook存放在hdfs中的大规模数据集执行查询。
hive与传统数据仓库的区别
传统数据仓库采用oracle或mysql等数据库搭建,其数据也是存储在这些数据库中;而hive是建立在hadoop的hdfs上的数据仓库基础框架,其数据存储在hdfs上,但其元数据(metadata)因其metaStore配置不同而存在不同的地方。
hive的metastore有三种不同的配置方式:
- 默认是采用嵌入方式
内部集成derby数据库(hive自带的),元数据存储在deby中;这种方式的局限在于:只允许创建一个连接,同时只允许一个用户访问,适用于作演示用的demo这种方式的特性是hive服务和metastore服务(derby)在同一个jvm
- 本地模式
元数据存储在外部数据库mysql(或其他)中mysql和hive运行在同一台物理机上,多用于开发和测试允许创建多个连接
- 远程模式
元数据存储在外部数据库mysql(或其他)中hive和mysql运行在不同的机器上,多用于生产环境,允许创建多个连接
hive的metastore的三种不同配置方式,也对应了三种不同的安装方式,本文主要介绍第二种安装方式。
二、Hive安装1、安装hadoop
采用伪分布式安装可参考:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
2、安装mysql
3、安装Hive
1)下载和Hadoop匹配的hive稳定版本 官网:http://hive.apache.org/downloads.html (看和你安装的Hadoop版本相对应)
2)安装hive安装包
cd /usr/local/ tar -zxvf /var/ftp/pub/apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin/ apache-hive-3.1.2/
3)添加环境变量
/etc/profile #Hive export HIVE_HOME="/usr/local/apache-hive-3.1.2" export HCAT_HOME="/usr/local/apache-hive-3.1.2/hcatalog" export PATH=".$PATH:$HCAT_HOME/bin:$HIVE_HOME/bin"
4)mysql创建用户
# 登录数据库命令行 mysql -u root # 创建数据库hive create database hive; # 新建用户hadoop,主机为localhost,密码为mysql create user 'hadoop'@'localhost' identified by 'mysql'; # 为刚创建的用户授权 grant all privileges on *.* to 'hadoop'@'localhost' with grant option; flush privileges; # 查看用户 select user,host from mysql.user;
5)修改配置文件
javax.jdo.option.ConnectionUserName hadoop javax.jdo.option.ConnectionPassword mysql javax.jdo.option.ConnectionURL mysqljdbc:mysql://localhost:3306/hive?useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.cj.jdbc.Driver hive.metastore.schema.verification false
6)在hadoop中创建hive所需的仓库
# $HADOOP_HOME为hadoop的主目录 $HADOOP_HOME/bin/hadoop fs -mkdir /tmp $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
7)hive初始化mysql中的数据库hive
#统一hive和mysql服务的时区。 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime // hive和mysql服务器都要执行,mysql要重启服务 # $HIVE_HOME为hive安装路径的主目录 $HIVE_HOME/bin/schematool -dbType msyql -initSchema
mysql connector jar包下载地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.21.zip (可换成对应版本的地址)
8)启动hive的metastore server服务进程
$HIVE_HOME/bin/hive --service metastore &
9)登录hive客户端
# 若配置了hive环境变量,可以直接执行hive $HIVE_HOME/bin/ hive三、使用hiveserver2和beeline
1)修改$HADOOP_HOME/etc/hadoop/core-site.xml文件,增加如下配置:
hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups *
2)启动hiveserver2
cd /usr/local/apache-hive-3.1.2/bin/ hiveserver2 hiveserver2 & // 以后台形式运行
3)进入beeline命令行
beeline -u jdbc:hive2://192.168.107.143:10000
4)使用DBeaver连接
驱动选择jdbc:hive2即可以正常连接
参考文章:
https://www.cnblogs.com/zhi-leaf/p/11506148.html
https://www.cxyzjd.com/article/qq_43688472/99431002



