在Ubuntu上安装Apache Hive并运行HQL查询

时间:2020-02-23 14:44:47  来源:igfitidea点击:

在本程序中,我们将了解如何通过在Ubuntu计算机上安装Apache Hive以及如何通过运行一些Hive DDL命令来验证安装来开始使用Apache Hive。
安装和运行Apache Hive可能很棘手,这就是为什么我们将尽量简化本课并提供更多信息的原因。

配置单元安装的前提条件

在我们的计算机上进行Hive安装之前,我们还需要安装其他一些东西:

  • 必须安装Java
  • 必须安装Hadoop并且必须配置集群

Java设置

在开始安装Hive之前,我们需要使用可用的最新软件补丁更新Ubuntu:

sudo apt-get update && sudo apt-get -y dist-upgrade

接下来,我们需要在计算机上安装Java,因为Java是运行Hive和Hadoop的主要前提条件。
Hive支持Java 6及更高版本。
让我们为此程序安装Java 8:

sudo apt-get -y install openjdk-8-jdk-headless

Hive安装入门

根据上述说明,一旦您安装了Java和Hadoop,我们就可以开始下载Hive。

在Apache Hive存档中找到所有Hive安装文件。
现在,运行以下命令以创建新目录,并从镜像站点下载最新的可用Hive安装档案:

mkdir hive
cd hive
wget https://www-eu.apache.org/dist/hive/hive-2.3.3/apache-hive-2.3.3-bin.tar.gz

有了这个,新的文件apache-hive-2.3.3-bin.tar.gz将被下载到系统上:下载Hive

现在让我们解压缩该文件:

tar -xvf apache-hive-2.3.3-bin.tar.gz

现在,文件名中的句点可能不被接受为Ubuntu中路径变量上的有效标识符。
为避免这些问题,请重命名未归档的目录:

mv apache-hive-2.3.3-bin apache_hive

完成此操作后,我们需要将Hive主目录添加到path。
运行以下命令以编辑.bashrc文件:

cd
vi .bashrc

.bashrc文件中添加以下行并保存:

export HIVE_HOME=$HOME/hive/apache_hive
export PATH=$PATH:$HIVE_HOME/bin

现在,要使环境变量生效,请获取.bashrc文件:

source .bashrc

请注意,在我们的文件中已经设置了Hadoop的路径,并且已完成整体配置:

# Configure Hadoop and Java Home
export HADOOP_HOME=/usr/local/hadoop
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$PATH:$HADOOP_HOME/bin

export HIVE_HOME=$HOME/hive/apache_hive
export PATH=$PATH:$HIVE_HOME/bin

如果要确认Hadoop是否正常工作,只需检查其版本即可:检查Hadoop版本

现在,我们需要配置Hive可以将数据存储到Hadoop分布式文件系统(HDFS)中的目录信息。
为此,我们将创建一个新目录:

hdfs dfs -mkdir -p /root/hive/warehouse

完成此操作后,我们将有最后要做的配置,然后才能启动Hive Shell。
我们需要通知配置单元有关其架构定义应使用的数据库。
我们执行以下行,以便Hive可以初始化metastore模式:

$HIVE_HOME/bin/schematool -initSchema -dbType derby

执行命令时,将看到以下成功输出:Hive Metastore模式初始化

启动Hive Shell

完成所有此配置后,可以使用一个简单的命令启动Hive:

hive

如果一切正常,您应该会看到配置单元shell神奇地出现了:启动配置单元shell

使用Hive Shell

现在我们已经运行了Hive shell,我们将其与一些基本的Hive DDL命令一起使用,在这些命令中我们将使用Hive查询语言(HQL)。

HQL:创建数据库

像任何其他数据库一样,我们只有在创建数据库后才能开始使用Hive。
让我们现在开始:

CREATE DATABASE theitroad;

我们将看到以下输出:在Hive中创建数据库

创建数据库的更好方法是检查数据库是否不存在:

CREATE DATABASE IF NOT EXISTS theitroad;

我们还将在此处看到相同的输出:如果不存在,则在Hive中创建数据库

现在我们可以显示Hive中存在的数据库:

show databases;

HQL:创建表

我们有一个活动的数据库,也可以其中创建一些表。
为此,首先切换到要使用的数据库:

use theitroad;

现在,在此数据库中创建一个带有一些字段的新表:

create table blogs(blog_id INT, blog_title STRING, blog_link STRING);

创建此表后,我们可以将其架构显示为:

describe blogs;

HQL:将数据插入表

作为最后的命令,让我们在刚刚创建的表中插入一条记录:

INSERT INTO TABLE blogs VALUES (1, 'Introduction to Hive', 'https://www.theitroad.local/20353/installing-apache-hive-on-ubuntu-and-sample-queries');

在Hive的帮助下,我们将看到很长的输出,借助Hadoop,MapReduce Jobs可以将数据插入到我们创建的仓库中。
输出将是:将数据插入Hive

最后,我们可以在Hive中看到以下数据:

select * from blogs;