Hive是什么
它是一种数据仓库工具。
Apache Hive™数据仓库软件,它通过使用SQL来读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已经存储的数据上。通过提供了命令行工具和JDBC驱动程序,来连接用户到Hive。
官网地址:hive.apache.org/
下载安装
下载地址:mirrors.tuna.tsinghua.edu.cn/apache/hive…
版本要求
Java 1.7+
| hive | java |
|---|---|
| 1.2 | Java 1.7+,推荐Java 1.8 |
| 0.14 to 1.1 | Java 1.6 |
注意:
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上使用它需要稍微不同的步骤。
通过下载稳定版本安装

$ tar -xzvf hive-x.y.z.tar.gz$ cd hive-x.y.z$ export HIVE_HOME={{pwd}}$ export PATH=$HIVE_HOME/bin:$PATH通过编译源代码安装
从主分支上编译
$ git clone https://git-wip-us.apache.org/repos/asf/hive.git $ cd hive $ mvn clean package -Pdist [-DskipTests -Dmaven.javadoc.skip=true] $ 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)branch-1,Hive 支持Hadoop 1.x 和2.x。你需要通过maven profile指定选择哪个hadoop版本。
针对Hadoop 1.x使用 hadoop-1配置文件
针对Hadoop 2.x 使用 hadoop-2配置文件
$ mvn clean package -Phadoop-1,dist在Hadoop 0.20上编译0.13之前的Hive
在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上编译0.13之前的Hive
要在Ant中构建针对Hadoop 0.23、2.0.0或其他版本,要使用适当的标志构建;一些例子如下:
$ 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
export HADOOP_HOME = <hadoop-install-dir>
另外,你在hive中创建一个表之前,必须使用下面的HDFS命令创建/tmp和/user/hive/warehouse(又名hive.metastore.warehouse.dir)目录,并设置它们chmod g+w。
$ $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 命令客户端
$ $HIVE_HOME/bin/hive运行HiveServer2 和Beeline
从Hive 2.1开始,我们需要运行下面的schematool命令作为初始化步骤。例如,我们可以使用“derby”作为db类型。
$ $HIVE_HOME/bin/schematool -dbType <db type> -initSchemaHiveServer2 有自己的命令客户端,叫做:Beeline。HiveCLI现在被Beeline取代,因为它缺乏HiveServer2的多用户、安全性和其他功能。直接从shell中运行HiveServer2:
$ $HIVE_HOME/bin/hiveserver2$ $HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORTBeeline由HiveServer2的JDBC URL启动,该URL取决于启动HiveServer2的地址和端口。默认情况下,它是(localhost:10000),因此地址看起来像jdbc:hive2://localhost:10000。
或为了测试目的,在相同的过程中启动Beeline和HiveServer2,以获得与HiveCLI类似的用户体验:
$ $HIVE_HOME/bin/beeline -u jdbc:hive2://运行HCatalog
在Hive释放0.11.0和以后,从shell上运行HCatalog服务器:
$ $HIVE_HOME/hcatalog/sbin/hcat_server.sh在Hive release 0.11.0和更高版本,使用HCatalog命令行接口(CLI):
$ $HIVE_HOME/hcatalog/bin/hcat运行WebHCat
在Hive release 0.11.0和更高版本,,从shell上运行WebHCat 服务器:
$ $HIVE_HOME/hcatalog/sbin/webhcat_server.sh参考文章:
hive cli :cwiki.apache.org/confluence/…
hiveserver2:cwiki.apache.org/confluence/…
