教程使用的Hadoop版本为3.1.3,Hive版本为3.1.2。
一、 安装MySQL
MySQL数据库可以安装在Windows中或Linux中,安装MySQL可以分为在线安装和离线安装,本次实验使用的是在线安装模式,具体操作如下:
-
使用ctrl+alt+T快捷键打开Ubuntu终端界面,在终端界面输入以下命令进行MySQL下载。
sudo apt-get update #更新软件源获得最新版本 sudo apt-get install mysql-server #安装MySQL
-
安装后,打开/etc/mysql/debian.cnf文件查看mysql登录账号与密码
sudo gedit /etc/mysql/debian.cnf
3. 按照以上文件生成的账号与密码,执行如下命令登录MySQL,其中:
-u:后加上文件中user的值。
-p:后加上文件中passowrd的值。
mysql -udebian-sys-maint -pz4rSX0G5hO0L5CyC
登录成功后,命令提示符则变为"mysql>",如下图所示:
-
修改MySQL的root账号登录密码,在MySQL Shell界面中输入以下命令:
use msyql; update user set plugin='mysql_native_password' where user='root'; FLUSH PRIVILEGES; alter user 'root'@'localhost' identified by '123456'; FLUSH PRIVILEGES;
-
在MySQL中为Hive新建数据库,需要在MySQL数据库中新建一个名称为hive的数据库,用来保存Hive的元数据。
create database hive character set "latin1";
二、安装hive
-
下载安装包。打开浏览器,在浏览器地址栏中输入以下地址:https://dlcdn.apache.org/hive/hive-3.1.2/。
-
选择apache-hive-3.1.2-bin.tar.gz版本下载hive安装包。
下载完毕后,退出浏览器,并使用Alt+Ctrl+T快捷键打开终端。
-
进入到保存Hive安装包的文件夹中。(本实验电脑JDK安装包下载至“下载”文件夹中)
cd 下载/
-
解压Hive安装包至/usr/local/目录下,并更改文件夹名为hive,并更改用户主为hive。
sudo tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/ #解压安装包 sudo mv /usr/local/apache-hive-3.1.2-bin /usr/local/hive/ #更改文件夹名称 sudo chown -R hadoop:hadoop /usr/local/hive/ #更改文件夹用户主
-
配置环境变量。
sudo gedit /etc/profile
在文件末尾添加以下内容:
export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin
保存退出后,重载/etc/profile文件,使得环境配置生效。
source /etc/profile
-
修改配置文件的方式
将“/usr/local/hive/conf”目录下的hive-default.xml.template文件复制命名为hive-default.xml,命令如下:
cd /usr/local/hive/conf #切换目录 cp hive-default.xml.template hive-default.xml #复制文件
使用gedit文本编辑器新建一个文件hive-site.xml,命令如下:
gedit 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>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <!--- 使用本地服务连接Hive,默认为true--> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property> <property> <name>hive.metastore.schema.verification</name> <value>true</value> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> </configuration>
-
下载MySQL JDBC驱动程序
为了让Hive能够连接到MySQL数据库,需要下载MySQL JDBC驱动程序。可以到MySQL官网(http://www.mysql.com/downloads/connector/j/)下载mysql-connector-java-5.1.49.tar.gz。
cd ~/下载/ tar -zxvf mysql-connector-java-5.1.49.tar.gz #解压 cd mysql-connector-java-5.1.49 #进入解压后的目录 #将mysql-connector-java-5.1.49-bin.jar拷贝到/usr/local/hive/lib目录下 cp mysql-connector-java-5.1.49-bin.jar /usr/local/hive/lib
-
guava包冲突解决
由于Hadoop3.1.3版本中,guava包版本为guava-27.0,Hive3.1.2版本中,guava包版本为guava-19.0,版本冲突。将Hadoop高版本的guava包替换Hive低版本的guava包,使用以下命令进行替换:
cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib rm -r $HIVE_HOME/lib/guava-19.0.jar
-
启动Hive
Hive是基于Hadoop的数据仓库,会把用户输入的查询语句自动转换成为MapReduce任务来执行,并把结果返回给用户。因此,启动Hive之前,需要先启动Hadoop集群,具体命令如下:
start-all.sh
hadoop集群启动完成后,如果首次部署hive,需要对进行元数据初始化。
schematool -dbType mysql -initSchema
输入以下命令进入hive CLI界面。
hive