赞
踩
本文章使用 Ubuntu 22.04 64位 作为系统环境,请自行前往优麒麟官网自行安装系统,也可通过阿里镜像下载安装;在安装Hadoop3.1.3的基础上安装Hive3.1.2,Hadoop3.1.3的安装教程详见林子雨老师的有关Hadoop3.1.3安装教程及单机/伪分布式配置,在这不做过多赘述:Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_厦大数据库实验室博客 (xmu.edu.cn)
本文中安装的Hadoop及JDK是基于林子雨老师的《大数据技术原理与应用》中所要求内容,因安装的Ubuntu系统不同、apt更新程度不同,因此所安装的mysql与林子雨老师的可能有所不同(本文安装的mysql的版本为8.0.35),版本相差不大对安装的影响也不是很大,读者可以尝试参考本文章进行安装。
下面附上厦门大学数据实验室主页:
厦门大学数据库实验室 | 数据驱动生活 (xmu.edu.cn)
注:在安装Hive3.1.2之前,请首先安装Hadoop3.1.3
附上百度网盘下载链接,内有所需资源:
链接:https://pan.baidu.com/s/121zVsgc4muSt9rgCWnJZmw
提取码:wkk6
将在物理机上下载的apache-hive-3.1.2-bin.tar文件拖入虚拟机中Ubuntu系统上的“下载”文件夹中
若不能拖入可能是因为没有安装VMware Tools,可移步于笔者的另一篇文章:真·保姆级——在VMware的Ubuntukylin上进行Hadoop单机/伪分布式安装时安装VMware Tools后虚拟机与物理机之间无法传输文件和复制粘贴的问题(附Ubuntu更改默认登录用户)_哇咔咔哇咔的博客-CSDN博客
打开下载文件夹,对文件进行解压:
- cd ~/下载
- sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local
如上,解压成功,可以看到/usr/local目录下有相关解压文件
进入/usr/local/目录下,对解压缩后的文件进行改名并修改文件权限:
- cd /usr/local/
- sudo mv apache-hive-3.1.2-bin hive
- sudo chown -R hadoop hive
使用vim编辑.bashrc文件:
vim ~/.bashrc
在该文件最前面一行添加如下内容:
- export HIVE_HOME=/usr/local/hive
- export PATH=$PATH:$HIVE_HOME/bin
- export HADOOP_HOME=/usr/local/hadoop
HADOOP_HOME需要被配置成读者的Hadoop的安装路径,笔者安装在/usr/local/hadoop目录下
编辑完成保存并退出后,运行如下命令使配置立即生效:
source ~/.bashrc
将hive-default.xml.template重命名为hive-default.xml:
- cd /usr/local/hive/conf
- mv hive-default.xml.template hive-default.xml
新建配置文件hive-site.xml:
- cd /usr/local/hive/conf
- vim hive-site.xml
将如下内容写入文件hive-site.xml:
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
- <description>JDBC connect string for a JDBC metastore</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>com.mysql.cj.jdbc.Driver</value>
- <description>Driver class name for a JDBC metastore</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionUserName</name>
- <value>hive</value>
- <description>username to use against metastore database</description>
- </property>
- <property>
- <name>javax.jdo.option.ConnectionPassword</name>
- <value>hive</value>
- <description>password to use against metastore database</description>
- </property>
- </configuration>
写入后保存并退出vim编辑器。
安装MySQL步骤请参考笔者另一篇文章:Ubuntu下载安装最新版MySQL(附运行截图)-CSDN博客
上一小节中的博客安装的 MySQL的版本为 8.0.35,因此我们需要下载对应版本的 MySQL jdbc 包,读者可以去本文开始时下载资源章节中的下载链接中下载,也可前往官网进行下载:MySQL :: Download Connector/J
下载教程可参考:下载mysql jdbc 包详细教程-CSDN博客
下载完成后,将包从物理机上拖到虚拟机Ubuntu系统中的家目录下的下载文件夹中
对mysql-connector-j_8.1.0-1ubuntu22.04_all.deb文件进行解压缩
使用 sudo dpkg -i mysql-connector-j_8.1.0-1ubuntu22.04_all.deb
命令安装 MySQL Connector/J 软件包时,该软件包将会被解压并放置在 /usr/share/java/
目录下
将解压缩后的文件mysql-connector-j-8.1.0.jar拷贝到/usr/local/hive/lib目录下:
- cd ~/下载
- sudo dpkg -i mysql-connector-j_8.1.0-1ubuntu22.04_all.deb
- cd /usr/share/java
- cp mysql-connector-j-8.1.0.jar /usr/local/hive/lib
解压之后可以看到/usr/share/java目录下有mysql-connector-j-8.1.0.jar文件:
- cd ~
- service mysql start #启动mysql服务
- mysql -u root -p #登陆shell界面
create user hive identified by 'hive';
创建了一个用户名为 "hive" 的用户,并设置了密码为 "hive"
grant all privileges on hive.* to hive@'%' with grant option;
授予了用户 "hive" 对数据库 "hive" 中所有表的全部权限,并且允许该用户将这些权限授予其他用户。hive@'%'
表示用户 "hive" 可以从任何主机连接到 MySQL 服务器
flush privileges;
刷新了权限,使新的授权规则立即生效
如下为3-6小节的执行过程:
start-dfs.sh
笔者已配置环境变量,所以,不需要把start-dfs.sh的路径加上,如果没有配置PATH,请读者加上路径后才能运行命令。
进入hive安装目录(笔者的hive安装目录为/usr/local/hive),执行命令如下:
- cd /usr/local/hive
- ./bin/schematool -dbType mysql -initSchema
若启动过程中出现如下报错:
org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations.
就是hive初始化的问题,可直接进行初始化操作(即执行此步骤)亦可参考此篇博客:
在启动hive之前请读者先启动数据库服务
- cd /usr/local/hive
- bin/hive
若正常启动会进入Hive的交互式执行环境以后,并出现如下命令提示符:
hive>
若启动过程中出现如下报错:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
可参考此篇博客:启动hive时报错“java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument“-CSDN博客
- create database if not exists hive; #创建一个名为 "hive" 的数据库,如果它不存在的话
- show databases; #显示所有的数据库
- show databases like 'h.*'; #显示以 'h' 开头的数据库
若能成功运行且未出现报错则证明hive成功安装并配置完成!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。