Hive安装配置
Last updated
Was this helpful?
Last updated
Was this helpful?
Hive是一个数据仓库工具,基于Hadoop,可以通过类sql的方式来对数据提供读、写及管理的功能。比直接用mapreduce开发效率高,提供了快速开发的能力。
特点
可扩展 延展性 容错性
客户端:CLI、JDBC、WebUI
Thrift Server:Thrift协议RPC通信服务
metastore:元数据存储(库/表的定义等
Driver:解析器,将hql抽象成表达式树
Compiler:编译hql语句,生成一个有向无环的执行计划,hive在mr引擎上就是编译成mapreduce的job
Optimizer:将执行计划进行优化,减少不必要的列、使用分区、使用索引等操作,优化job。
Executor:将优化后的执行计划提交给Hadoop上的yarn,执行job
Hive是基于Hadoop的,最好选用跟Hadoop合适的版本进行安装。
Hive的存储基于hdfs/hbase,默认的计算引擎基于mapreduce(hive2.x以上版本不推荐使用mr引擎)
去官网下载合适版本的安装包
解压后配置环境变量,
一、本地模式
使用默认的derby进行存储,用于测试,不需要配置,但是只支持单session。
配置 hive-env.sh的JAVA_HOME
启动Hive
元数据会在启动hive命令的目录下生成
二、远程模式
通常使用关系型数据库来进行元数据存储(mysql、oracle等
支持多session,但需要安装关系型数据库,并需要配置
进行配置:
hive-site.xml
将mysql的JDBC驱动包放在$HIVE_HOME/lib目录下
启动hive,初始化元数据 schematool -dbType mysql -initSchema
启动服务 nohup hiveserver2 > hiveserver2.log 2>&1 &
略
开启metastore服务
开启hiveserver2服务
进入 beeline
使用 !connect jdbc:hive2://hdfs03:10000 命令进入hive
没有配置权限的情况,用户名和密码可以直接敲回车跳过,或者任意输入
beeline退出使用 !exit 命令
配置jdbc使用java代码可用maven导包
图形化工具连接 需手动配置hive的jdbc依赖
本文使用DataGrid,也可以使用Idea Ultimate版本自带的database工具连接。使用方法一样。
DataGrip打开Data Sources and Drivers
创建一个新的 Apache Hive Driver
配置合适版本的驱动包
由于 hive-jdbc 不是包含所有依赖的包(这里是 HA 的 HiveServer, 需要有 ZK 的依赖, 也可以直接连接 HiveServer), 所以需要导入 Driver 的全部 jar, 如下:
commons-httpclient-3.0.1.jar commons-logging-1.2.jar curator-client-2.7.1.jar curator-framework-2.7.1.jar hadoop-auth-2.9.2.jar hadoop-common-2.9.2.jar hive-common-2.3.6.jar hive-exec-2.3.6.jar hive-jdbc-2.3.6.jar hive-metastore-2.3.6.jar hive-service-2.3.6.jar httpclient-4.4.jar httpcore-4.4.jar slf4j-api-1.7.25.jar zookeeper-3.4.6.jar
这里的文件有部分是hive的lib中找,有部分是从hadoop的库(${HADOOP_HOME}\/share\/hadoop/common/lib)中找 我的Hive版本是2.3.6,Hadoop的版本是2.9.2。
和连接其他数据库类似, 配置好连接名, JDBC URL, 用户, 密码 即可
URL可以有两种形式:
jdbc:hive2://<hiveserver_host>:<port>
: 直接连接某个 HiveServer
jdbc:hive2://<zookeeper_server1>:<port>,<zookeeper_server2>:<port>;zooKeeperNamespace=<hiveserver_namespace>
: 通过 Zookeeper 连接 HiveServer(需要多几个依赖)
打开连接即可使用了。
如果网络不顺畅可以尝试