在Ubuntu上安装Apache Hive并运行HQL查询
在本程序中,我们将了解如何通过在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;