关于Hive
Apache Hive是建立在Hadoop之上强大的数据仓库应用程序;你可以使用Hive
QL(一种类似于SQL的语言)来访问你的数据。你可以在安装有Hive的客户机上提交你的作业,你不需要将Hive安装在Hadoop集群的任何节点上。
HiveServer2
CDH4.1中,你可以部署HiveServer2,HiveServer2是HiveServer的改进版本,它提供新的Thrift
API来处理JDBC或者ODBC客户端,Kerberos身份验证,多个客户端并发。HiveServer2还提供了新的CLI-BeeLine。
Cloudera推荐安装使用HiveServer2。(当你需要时,仍然可以使用原来的HiveServer,并且同时运行HiveServer2)
升级Hive
在所有有运行Hive 的主机上升级Hive:服务端和客户端
升级Hive从CDH3到CDH4
注意事项:如果你已经执行卸载CDH3和所有组件的步骤,按照这里的描述
升级CDH3到CDH4,你可以跳过步骤1,继续安装CDH4版的Hive。
Step 1:Remove Hive
警告:确保没有hive进程在运行,如果在升级过程中有Hive进程在运行,新版本将不能正常工作。
1.退出Hive控制台,确保没有Hive脚本在运行。
2.停止正在运行的HiveServer进程,如果HiveServer作为守护进程运行,用洗面的命令停止服务。
$ sudo service hive-server stop
如果HiveServer从命令行运行的,用-c
停止它
3.停止metastore服务,如果metastore作为守护进程运行,用下面的命令停止服务
$ sudo service hive-metastore stop
如果metastore从命令行运行的,那用-c
停止它
4.Remove Hive
$ sudo yum remove hadoop-hive
SLES systems
$ sudo zypper remove hadoop-hive
Ubuntu and Debian systems
$ sudo apt-get purge hadoop-hive
Step 2:在所有主机上安装新版本(Hive服务端和客户端)
重要提示:在卸载过程中,包管理器将重命名已经修改的配置文件,
to .rpmsave。在重新安装过程中,
Step 3: 配置Hive Metastore
Step 4: 升级的Metastore schema
当前版本的CDH4包含了Hive Metastore schema的变化。如果你已经使用Hive0.9或更早版本,在安装完Hive之后和运行Hive之前,必须升级Hive Metastore schema,要做到这一点,运行升级脚本/usr/lib/hive/scripts/metastore/upgrade/:
1.Schema upgrade scripts from 0.7 to 0.8 and from 0.8 to 0.9
for Derby, MySQL, and PostgreSQL
2.0.8 and 0.9 schema scripts for Oracle, but no upgrade
scripts (you will need to create your own)
3.Schema upgrade scripts from 0.9 to 0.10 for Derby, MySQL,
PostgreSQL and Oracle
注意事项:为了升级Hive从CDH3到CDH4,你必须升级schema到0.8,然后到0.9,再到0.10
重要提示:Cloudera强烈建议你在运行升级脚本之前对metastore
database进行备份,如果在升级过程中遇到问题可以回滚到以前的版本。
在运行Hive之前必须升级metastore,如果不这么可能导致metastore损坏。
要运行脚本,你必须进入到脚本的所在目录/usr/lib/hive/scripts/metastore/upgrade/。
Step 5: 配置HiveServer2
HiveServer2是HiveServer(HiveServer1)的改进版本,Cloudera建议用HiveServer2来替代HiveServer1,只要你不直接依赖于HiveServer1的Thrift
API。在初始化HiveServer2之前需要对其进行配置。具体细节可以查看
Configuring HiveServer2。
注意事项:需要运行HiveServer1,如果你需要向后的兼容性,你可以继续在CDH4.1或后面的版本上运行。例如,现有的Perl和Python脚本绑定了HiveServer1,你可以在同一系统上同时安装和运行HiveServer1和HiveServer2;
Step 6: 为HiveServer2升级脚本,等等 (如果有必要)
如果你已经运行HiveServer1,您,当升级的时候可能需要对客户端脚本和应用程序进行一些小的修改:
1.HiveServer1不支持并发连接,对于每一个客户端,很多用户运行的是用一个HiveServer1实例,现在HiverServer2的单个实例可以解决HiveServer1的并发连接问题。
2.HiveServer2的JDBC驱动程序使用不同的连接URL和驱动程序类,需要修改脚本来适用新的版本。
3.Perl或Python脚本中使用HiveServer1的Thrift需要修改成HiveServer2的Thrift
Step 7:启动Metastore, HiveServer2, and BeeLine
Installing
Hive
不同操作系统安装命令有所不同
|
RedHat and CentOS systems
|
|
|
SLES systems
|
$ sudo zypper install ...
|
|
Ubuntu and Debian systems
|
$ sudo apt-get install ...
|
- hive – 基本软件包,提供了完整的语言和运行时(必须)
- hive-metastore –
提供独立运行metastore服务的脚本 (可选)
- hive-server – 提供独立运行hiveserver1服务的脚本 (可选)
- hive-server2 – 提供独立运行hiveserver2服务的脚本 (可选)