概述
前提:hive是基于hadoop的数据仓库工具,将一定格式的文件映射为一张张表,因此hive版本和hadoop版本有对应关系,一定要检查自己安装的hadoop和hive版本是否兼容;(文末会给出一些安装包,最新的可以到官网下载)
本人hadoop版本:2.7.1,hive版本:1.2.1,jdk:1.8.0_162,mysql:8.0.20,jdbc:8.0.20
hive1.2.1 兼容Hadoop 2.x.y.-------在链接内自己可以查看hive,hadoop关系(http://hive.apache.org/downloads.html)
查看hive版本:启动hive时会出现hive-common-x.x.x.jar,xxx就是版本号
查看hadoop版本:hadoop version,即可看到
查看JDK版本:java --version
另一个参考教程,hive配置mysql作为metastore(https://www.guru99.com/hive-metastore-configuration-mysql.html)
1.安装hive:
cd ~/下载
sudo tar -xzvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/loca # 解压到/usr/local中
cd /usr/local
sudo mv apache-hive-1.2.1-bin hive #将文件夹名改为hive
sudo chown -R hadoop:hadoop hive # 修改文件权限,注意修改为你的用户名和组
2.配置环境变量:
先打开.bashrc隐藏文件,再复制export到首行并保存,最后使生效,注意查看路径与实际路径一致!!!
gedit ~/.bashrc #或者vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc #使修改生效
3.启用hive-default.xml,修改hive-site.xml(./hive/conf)
cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml
vim hive-site.xml #hive-site.xml中的设置优先级高于hive-default.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>
看描述内容,设置了mysql地址,driver,数据库user,数据库passwd,可以根据情况自行修改哦,必须与后面mysql中创建的一致,否则连不上
4.安装msql:
sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装mysql
默认是启动的,可以通下面netstat -tap|grep mysql 查看(下面给出开启,关闭,重启命令)
sudo netstat -tap | grep mysql #mysql节点处于LISTEN状态表示启动成功
sudo service mysql start #开启
sudo service mysql stop #关闭
sudo service mysql restart #重启
注意我安装时没有提示输入root账户密码,默认是空
sudo mysql -u root -p #密码按Enter即可进入mysql shell,空格也可以,普通用户一定sudo
5.下载安装mysql jdbc,下载地址
选择系统,系统版本,自动出现最新的安装包,注意下载的是deb格式的,可以使用cpkg命令安装
cd ~/下载 #切换到你的文件所在目录下
sudo apt install ./mysql-connector-java_8.0.20-1ubuntu20.04_all.deb
sudo dpkg -i mysql-connector-java_8.0.20-1ubuntu20.04_all.deb #我用的是这个命令
cp /usr/share/java/mysql-connector-java-8.0.20.jar /usr/local/hive/lib #将jar包拷贝到/hive/lib目录下
注意,你可能不知道安装到哪里了,别急,在/usr/share/java/,(验证路径的方法:打开deb文件,提取文件,看到.tar.xz文件,用xz -d 解压,tar -xvf 解包,出来的文件目录路径就是在系统中的路径,你可以cd试试,我也找了好一会试出来的)
6.创建mysql hive用户和hive库
mysql -u root -p #登陆shell界面,请先确认已经启动
create user 'hive'@'localhost' identified by 'hive'; -- 创建hive用户,密码是hive,必须与hive-site.xml配置的user,password相同
grant all on *.* to 'hive'@'localhost' ; -- 将所有数据库的所有表的所有权限赋给hive
flush privileges; -- 刷新mysql系统权限关系表
(有的教程中没有创建用户的语句,直接使用 grant all on *.* to hive@localhost identified by 'hive';会提示ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'hive'' at line 1,语法错误,没有引号???)
7.Everything is ok,let's test:
启动hadoop:start-dfs.sh or start-all.sh
启动hive:hive
创建表,create table test(id int,name string);
到mysql中查看保存在元数据库的TBLS表中,use hive;select * from TBLS;
如果有刚刚建的表名,则配置成功;
备注:1.启动hive时如果出现Hive metastore database is not initialized的错误,则使用命令初始化:
schematool -dbType mysql -initSchema
2.jdbc 8.0.20 driver class name 更改:com.mysql.cj.jdbc.Driver,其他教程中是com.mysql.jdbc.Driver,如果错了会提示。
JDBC(Ubuntu20.4)下载链接:n9p8
Linux JDK1.8.162,百度云盘提取:fp3g 下载链接
hadoop2.7.1,百度云盘提取码: tjwa,下载链接
apache-hive1.2.1,百度云盘提取码:3srn,下载链接
最后
以上就是无聊紫菜为你收集整理的Ubuntu 20.04 LTS 安装hive配置metastore、mysql和JDBC的全部内容,希望文章能够帮你解决Ubuntu 20.04 LTS 安装hive配置metastore、mysql和JDBC所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复