前言:
一、Hive是什么?
Hive是一个运行在Hadoop上的数据仓库工具,它本身并不存储数据,数据是存在HDFS之上,而它提供了一个类似SQL(HiveQL)接口,让使用者可以通过类SQL语句来构建MapReduce任务来读取HDFS上的数据。由于MR的限制,Hive并不适用于做实时查询,它更适合用来做离线分析。Hive 是将数据映射成数据库和表,库和表的元数据信息一般存在关系型数据库上(比如MySQL 或者默认的Derby)。
二、安装步骤
1. 下载安装包并解压
apache官网hive下载地址(这里我选择的版本是1.2.1) 我在master节点上进行操作
su hadoop
cd ~
wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
tar -zxvf apache-hive-1.2.1-bin.tar.gz
sudo mv apache-hive-1.2.1-bin /usr/local/hive
如果遵循以上步骤的话,这个时候 /usr/local/hive 路径下的文件的owner应该都是hadoop 则不需要做什么修改了。如果hive文件夹下的用户不是hadoop,则需要运行多一条命令
sudo chown -R hadoop:hadoop /usr/local/hive
2.配置环境变量
编辑~/.bashrc 文件,追加:
export PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME=/usr/local/hive
运行以下命令让环境变量生效
source ~/.bashrc
3. Hive配置
我的Hive配置位于 /usr/local/hive/conf 路径下
cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml
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>
4. 安装和配置Mysql
1. 安装mysql
一般而言,都会选择用mysql来存储hive的元数据,因为Derby不支持并发连接,所以实战中不会用它。 这里用最简单的方式
sudo apt-get update
sudo apt-get install mysql-server
mysql -V
cd /etc/mysql
sudo cat debian.cnf
我的debian.cnf文件内容为:
[client]
host = localhost
user = debian-sys-maint
password = 6Omc403SMYZd2lbV
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = 6Omc403SMYZd2lbV
socket = /var/run/mysqld/mysqld.sock
使用默认的用户名密码登录然后进行操作
mysql -u debian-sys-maint -p 6Omc403SMYZd2lbV
use mysql;
update user set authentication_string=PASSWORD("输入密码") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit;
下载mysql for java驱动
下载地址 当前(2021-08)最新版是8.0.26 ,可以向下兼容,直接下载。下载到的文件是mysql-connector-java_8.0.26-1ubuntu18.04_all.deb ,因此还需要安装
sudo apt install ./mysql-connector-java_8.0.26-1ubuntu18.04_all.deb
cd /usr/share/java
cp mysql-connector-java-8.0.26.jar /usr/local/hive/lib/
service mysql start
mysql -u root -p
create database hive;
grant all on *.* to hive@localhost identified by 'hive';
flush privileges;
|