【Hive】配置
创始人
2025-05-29 17:55:06
0

目录

Hive参数配置方式

参数的配置方式

1. 文件配置

2.  命令行参数配置

3. 参数声明配置

配置源数据库

配置元数据到MySQL

查看MySQL中的元数据

Hive服务部署

 hiveserver2服务

介绍

部署

启动

远程连接

1. 使用命令行客户端beeline进行远程访问

metastore服务

运行模式

部署

其他常见配置

显示当前表头和库

日志配置

Hive的JVM堆内存设置

关闭Hadoop虚拟内存检查

来源:


Hive参数配置方式

查看当前所有配置

hive>set;

参数的配置方式

1. 文件配置

  • 默认配置文件:hive-default.xml
  • 用户自定义配置文件:hive-site.xml

用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。

2.  命令行参数配置

bin/hive -hiveconf (param=value)

 查看参数设置

set (param);

3. 参数声明配置

hive> set (param=value);

 后两种只对本次有效。

配置文件 < 命令行参数 < 参数声明

log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。

配置源数据库

Hive默认使用的元数据库为derby。derby数据库的特点是同一时间只允许一个客户端访问。如果多个Hive客户端同时访问,就会报错。

删除derby.log,metastore_db,HDFS上目录

rm -rf derby.log metastore_db
hadoop fs -rm -r /user

通过hdfs的web界面 ,删除hdfs里的/user/hive/warehouse/stu

安装mysql

(13条消息) 【Linux】安装MySQL数据库_岱宗夫如何、的博客-CSDN博客

配置元数据到MySQL

新建Hive元数据库

mysql -uroot -p
create database metastore;
quit

将MySQL的JDBC驱动拷贝到Hive的lib目录下

cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

在$HIVE_HOME/conf目录下新建hive-site.xml文件

vim $HIVE_HOME/conf/hive-site.xml

javax.jdo.option.ConnectionURLjdbc:mysql://hadoop102:3306/metastore?useSSL=falsejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNamerootjavax.jdo.option.ConnectionPassword密码hive.metastore.warehouse.dir/user/hive/warehouse

初始化Hive元数据库

bin/schematool -dbType mysql -initSchema -verbose

检验测试

bin/hive
hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"ss");
hive> select * from stu;
在Xshell窗口中开启另一个窗口开启Hive(两个窗口都可以操作Hive,没有出现异常)
hive> show databases;
hive> show tables;
hive> select * from stu;

查看MySQL中的元数据

mysql -uroot -p
show databases;
use metastore;
show tables;
查看库信息,
有在hdbfs根目录
select * from BDS;
查看表信息
select * from TBLS;
表的存储路径,outputf,inputf
select * from SDS;
查看列相关信息
select * from COLUMNS_V2;

Hive服务部署

 hiveserver2服务

介绍

ve的hiveserver2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。

远程访问集群通过 Hiveserver2 代理;模拟用户的功能,默认是开启的。

未开启用户模拟功能:Hiveserver2的启动用户

 开启用户模拟功能:

 生产环境,推荐开启用户模拟功能,因为开启后才能保证各用户之间的权限隔离。

部署

1. Hadoop端配置

hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能);因此,需要将hiveserver2的启动用户设置为Hadoop的代理用户

cd $HADOOP_HOME/etc/hadoop
vim core-site.xml

hadoop.proxyuser.atguigu.hosts*

hadoop.proxyuser.atguigu.groups*

hadoop.proxyuser.atguigu.users*

分发配置文件

2. 配置Hive 

vim conf/hive-site.xml

hive.server2.thrift.bind.hosthadoop102

hive.server2.thrift.port10000

启动

bin/hive --service hiveserver2
nohup bin/hiveserver2 >/dev/null 2>&1 &
jps

Jps  jps -ml

Nohup 不挂断, & 后台

Nohup bin/hiveserver2 &

1>/dev/null 丢弃标准输出

2>&1

进程文件描述符   0标准输入 1标准输出 2标准错误

远程连接

1. 使用命令行客户端beeline进行远程访问

hive beeline详解 - 简书 (jianshu.com)

2.使用图形化界面

(DataGrip)

metastore服务

Hive的metastore服务的作用是为Hive CLI或者Hiveserver2提供元数据访问接口。

运行模式

嵌入式模式

 独立服务模式

生产环境中,不推荐使用嵌入式模式。因为其存在以下两个问题:

(1)嵌入式模式下,每个Hive CLI都需要直接连接元数据库,当Hive CLI较多时,数据库压力会比较大。

(2)每个客户端都需要用户元数据库的读写权限,元数据库的安全得不到很好的保证。

部署

嵌入式模式

只需保证Hiveserver2和每个Hive CLI的配置文件hive-site.xml中包含连接元数据库所需要的以下参数即可:

javax.jdo.option.ConnectionURLjdbc:mysql://hadoop102:3306/metastore?useSSL=falsejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNamerootjavax.jdo.option.ConnectionPassword密码

独立服务模式

hive-site.xml

javax.jdo.option.ConnectionURLjdbc:mysql://hadoop102:3306/metastore?useSSL=falsejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNameroot
javax.jdo.option.ConnectionPassword密码
hive.metastore.uristhrift://hadoop102:9083

主机名需要改为metastore服务所在节点,端口号无需修改,metastore服务的默认端口就是9083。

在Hive CLI的配置文件中配置了hive.metastore.uris参数,此时Hive CLI会去请求我们执行的metastore服务地址,所以必须启动metastore服务才能正常使用。

测试

hive --service metastore
注意:启动后该窗口不能再操作,需打开一个新的Xshell窗口来对Hive操作。
bin/hive

其他常见配置

显示当前表头和库

hive-site.xml


hive.cli.print.headertrueWhether to print the names of the columns in query output.


hive.cli.print.current.dbtrueWhether to include the current database in the Hive prompt.

日志配置

log默认配置在/tmp/用户/hive.log

修改log存放目录

cd $HIVE_HOME/conf/
mv hive-log4j2.properties.template hive-log4j2.properties
vim hive-log4j2.properties
property.hive.log.dir=${HIVE_HOME}/logs

Hive的JVM堆内存设置

Hive启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请的太小,导致后期开启本地模式,执行复杂的SQL时经常会报错:java.lang.OutOfMemoryError: Java heap space.

cd $HIVE_HOME/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
# The heap size of the jvm stared by hive shell script can be controlled via:
export HADOOP_HEAPSIZE=2048

关闭Hadoop虚拟内存检查

修改前记得先停Hadoop
stop-yarn.sh
vim yarn-site.xml
yarn.nodemanager.vmem-check-enabledfalse

分发集群

来源:

尚硅谷

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...