hive的环境搭建
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,因为hive是基于hadoop的,所以一定要有hadoop的平台支撑:hadoop分布式集群搭建:https://blog.51cto.com/14048416/23414911. 内嵌Derby版本
千家信息网最后更新 2025年12月04日hive的环境搭建
因为hive是基于hadoop的,所以一定要有hadoop的平台支撑:
hadoop分布式集群搭建:https://blog.51cto.com/14048416/2341491
1. 内嵌Derby版本:
安装步骤:
- 上传安装包:apache-hive-2.3.2-bin.tar.gz
- 解压安装包:tar -zxvf apache-hive-2.3.2-bin.tar.gz -C /application
- 进入进入到 bin 目录,运行 hive 脚本:./hive
- 初始化元数据库:./schematool -dbType derby -initSchema
- 最终测试进入hive后:hive>show tables;
安装时的常见错误:
- Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000),这表示metastore_db已经存在,在相应的进入hive的目录中删除metastore_db,然后重新初初始化元数据即可。
- Terminal initialization failed; falling back to unsupported。这是因为hadoop(/root/apps/hadoop-2.6.5/share/hadoop/yarn/lib)集群的 jline-0.9.94.jar 包版本 过低,替换成 hive/lib 中的 jline-2.12.jar 包即可,记住:所有 hdfs 节点都得替换。
注意:使用Derby方式部署的hive,在哪个工作空间进入hive,就会在哪个工作空间创建一个derby.log metastore_db,元数据。即元数据跟着空间跑,如果下次不在这个工作空间进入,则无法访问上传存储的数据。因此这也是使用Derby方式部署的hive的弊端。
2. 外置MySQL版本:
首先这里需要MySQL的服务,在集群的任意节点上配置MySQL。
安装步骤:
- 修改hive的配置文件:hive-site.xml
javax.jdo.option.ConnectionURL jdbc:mysql://hadoop02:3306/hivedb?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName Stay hungry Stay foolish -- http://blog.csdn.net/zhongqi2513com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root username to use against metastore database javax.jdo.option.ConnectionPassword root password to use against metastore database hive.metastore.warehouse.dir /user/hive/warehouse - 把MySQL的驱动包,放置在hive/lib (mysql-connector-java-5.1.40-bin.jar)
- 配置hive的环境变量
export HIVE_HOME=/home/hadoop/apps/apache-hive-1.2.1-binexport PATH=$PATH:$HIVE_HOME/bin - 验证hive的安装:hive -help
- 初始化元数据:schematool -dbType mysql -initSchema
- 启动hive的客户端:hive
注意:当配置好hive后,会在MySQL中生成57张表:
DBS:管理库的表:

TBLS:管理表的表
COLUMNS_V2:管理字段的表
3. 连接hive的客户端:
- 直接使用hive命令,进入hive进行操作
- 把hive启动成为一个后台服务:nohup hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &,然后使用beeline连接。
- [hadoop hadoop01@~]$beeline # 连接hive
- hadoop01>!connect jdbc:hive2://hadoop01:10000 #连接客户端连接hive仓库
- 或者 [hadoop hadoop01@~]$beeline -u jdbc:hive2://hadoop01:10000 -n hadoop
但是使用beeline连接通常会出现错误:Connecting to jdbc:hive2://hadoop01:10000Enter username for jdbc:hive2://hadoop01:10000: hadoopEnter password for jdbc:hive2://hadoop01:10000: ******18/10/15 16:30:37 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop01:10000Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop01:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hadoop (state=08S01,code=0报这个错误的原因不是hive本身,而是hive底层所依赖的hdfs的权限管理提高了,hadoop集群报出来的。必须做权限认证。
解决方法:
- 停止集群:stop-dfs.sh && stop-yarn.sh
- 修改hadoop的hdfs-site.xml配置文件:加入:
dfs.webhdfs.enabled true - 修改hadoop的core-site.xml文件,加入:
hadoop.proxyuser.hadoop.hosts * hadoop.proxyuser.hadoop.groups * - 重新启动hadoop集群,重新启动hive的 server,然后使用beeline连接即可。
4.用户接口的操作
hive的命令分成两大类:
- 进入hive客户端之后的操作:
- query:正常的操作语句(查询+库表的DDL操作)
- !linux命令:在hive客户端中执行Linux命令(只能执行部分)
- 在hive客户端中执行hadoop相关命令hive>!hadoop fs -ls / ; (以Linux命令的形式执行) 慢hive>dfs -ls /; 使用当前的hive客户端的jvm进程执行 快常见操作有:
hive>quit; #退出hive的客户端hive>set key=value; #设置hive的参数hive>add jar xxx.jar #临时的向hive添加jar包hive>add file #向hive中的classpath中添加filehive>list jars #查看添加的jarhive>source file #执行一个脚本(这个脚本时存储在linux上)
- 进入hive客户端之前的操作:
[hadoop hadoop01@~]$ hive -e 'hql' #在linux下执行hive语句[hadoop hadoop01@~]$ hive -f linux中的hql脚本 #在Linux下执行hql脚本[hadoop hadoop01@~]$ hive -h hiveconf key=value # 进入hive客户端,并初始化参数(只能设置一个)[hadoop hadoop01@~]$ hive -i linux参数文件 #进入,hive并执行参数文件中的所有参数设置[hadoop hadoop01@~]$ hive -v #输出结果打印到控制台[hadoop hadoop01@~]$ hive -S #不打印日志,经常和-e参数使用[hadoop hadoop01@~]$ hive -S -e 'hql' >> file #将查询到的结果输出到Linux文件中
客户
客户端
参数
命令
数据
文件
集群
脚本
配置
空间
管理
版本
错误
工作
常见
方式
权限
步骤
目录
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器不能通过xshell连接
河南服务器电源销售价格
数据库开发主要做什么
服务器不显示
数据库信息安全管理方案
打印图片传真服务器
服务器运行的程序是什么
K公司是一家软件开发公司
网络技术笔记本排行
火炬之光279服务器
网格员开展网络安全周宣传
网络技术的阴暗面
获取前台text数据库
第五空间 网络安全
2022春考网络技术教材
怎么看论文所属数据库
威海智慧团建软件开发
协助软件开发
数据库硕士论文
房子平面图设计软件开发
水滴筹互联网科技公司怎么样
网络安全为主题的实践活动
互联网高科技人才的性格特征
流量转发服务器压力
安徽的lol服务器虚拟主机
网络安全研究生推荐
女生干软件开发
仁怀网络安全系统怎么样
阿里云数据库工作
数据库结课报告3000字