安装和配置
您可以通过下载压缩包来安装Hive的稳定版本,也可以下载源代码并从中构建Hive。
运行HiveServer2和Beeline
前提要求
- Java 1.7
注意:Hive版本1.2及更高版本需要Java 1.7或更高版本。Hive 0.14至1.1版本也可与Java 1.6一起使用。强烈建议用户开始使用Java 1.8(请参阅HIVE-8607)。 - Hadoop 2.x(首选),1.x(Hive 2.0.0及更高版本不支持)。
最高为0.13的Hive版本还支持Hadoop 0.20.x,0.23.x。 - Hive通常用于生产Linux和Windows环境。 Mac是常用的开发环境。本文档中的说明适用于Linux和Mac。在Windows上的使用步骤略有不同。
安装稳定版本的Hive
首先从一个Apache下载镜像中下载Hive的最新稳定版本(请参阅Hive版本)。
接下来,您需要对压缩包进行解压。这将导致创建一个名为hive-x.y.z的子目录(其中x.y.z是发行版号):
$ tar -xzvf hive-x.y.z.tar.gz
将环境变量HIVE_HOME设置为Hive的安装目录:
$ cd hive-x.y.z
$ export HIVE_HOME={
{
pwd}}
最后,将$HIVE_HOME/bin添加到您的PATH中:
$ export PATH=$HIVE_HOME/bin:$PATH
使用源代码构建Hive
最新的Hive代码放在Hive的Git仓库中的这个地址上面:使用如下命令从Hive的Git仓库中克隆
git clone https://git-wip-us.apache.org/repos/asf/hive.git (the master branch)
所有发行版本均位于名为“ branch-0.#”或“ branch-1.#”或即将推出的“ branch-2.#”的分支中,除了发行版0.8.1是在“branch-0.8-r2”这个分支中。具有其他名称的任何分支都是进行中工作的功能分支。有关详细信息,请参见了解Hive分支。
从0.13开始,Hive使用Apache Maven构建。
在master分支上编译Hive
要从master分支构建当前的Hive代码:
$ git clone https://git-wip-us.apache.org/repos/asf/hive.git
$ cd hive
$ mvn clean package -Pdist
$ cd packaging/target/apache-hive-{
version}-SNAPSHOT-bin/apache-hive-{
version}-SNAPSHOT-bin
$ ls
LICENSE
NOTICE
README.txt
RELEASE_NOTES.txt
bin/ (all the shell scripts)
lib/ (required jar files)
conf/ (configuration files)
examples/ (sample input and query files)
hcatalog / (hcatalog installation)
scripts / (upgrade scripts for hive-metastore)
这里,上面的{version}指的是当前的Hive版本。
如果使用Maven(mvn)构建Hive源代码,我们将把目录“/packaging/target/apache-hive-{version}-SNAPSHOT-bin/apache-hive-{version}-SNAPSHOT-bin”称为用于页面的其余部分。
在branch-1分支上编译Hive
在branch-1分支中,Hive同时支持Hadoop 1.x和2.x。您将需要通过Maven配置文件指定针对哪个版本的Hadoop。要针对Hadoop 1.x进行构建,请使用hadoop-1进行配置;对于Hadoop 2.x使用hadoop-2进行配置。例如,要针对Hadoop 1.x构建,上述mvn命令如下:
$ mvn clean package -Phadoop-1,dist
在Hadoop 0.20上编译Hive到0.13之前
在Hive 0.13之前,Hive是使用Apache Ant构建的。要在Hadoop 0.20上构建旧版本的Hive:
$ svn co http://svn.apache.org/repos/asf/hive/branches/branch-{
version} hive
$ cd hive
$ ant clean package
$ cd build/dist
# ls
LICENSE
NOTICE
README.txt
RELEASE_NOTES.txt
bin/ (all the shell scripts)
lib/ (required jar files)
conf/ (configuration files)
examples/ (sample input and query files)
hcatalog / (hcatalog installation)
scripts / (upgrade scripts for hive-metastore)
如果使用Ant进行编译的话,我们将目录“build/dist”称为。
在Hadoop 0.23上编译Hive到0.13之前
要针对Hadoop 0.23、2.0.0或其他版本在Ant中构建Hive,请使用适当的标志进行构建;以下是一些示例:
$ ant clean package -Dhadoop.version=0.23.3 -Dhadoop-0.23.version=0.23.3 -Dhadoop.mr.rev=23
$ ant clean package -Dhadoop.version=2.0.0-alpha -Dhadoop-0.23.version=2.0.0-alpha -Dhadoop.mr.rev=23
运行Hive
运行Hive需要使用到Hadoop,因此:
- 您必须在环境变量中配置了Hadoop
- 在Path中配置了export HADOOP_HOME=
此外,必须先使用以下HDFS命令创建/tmp
和/user/hive/warehouse
(aka hive.metastore.warehouse.dir)并将它们设置为chmod g + w,然后才能在Hive中创建表。
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
尽管没有必要,但是您可能会发现设置HIVE_HOME会很有用:
$ export HIVE_HOME=<hive-install-dir>
运行Hive CLI
要从Shell脚本中使用Hive命令行界面(CLI):
$ $HIVE_HOME/bin/hive
运行HiveServer2和Beeline
从Hive 2.1开始,我们需要运行以下schematool命令作为初始化步骤。例如,我们可以使用“ derby”作为数据库类型。
$ $HIVE_HOME/bin/schematool -dbType <db type> -initSchema
HiveServer2(在Hive 0.11中引入)具有自己的CLI,称为Beeline。HiveCLI现在不赞成使用Beeline,因为它缺少HiveServer2的多用户,安全