Hive插入数据警告:Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions

22 篇文章 2 订阅
10 篇文章 0 订阅

Hive插入表数据持续等待警告问题解决



1、问题描述


启动Hadoop,使用hiveserver2启动Hive的JDBC服务并使用IDE连接到Hive,创建表成功,但是INSERT插入数据时经过长时间加载后无法得到预期结果,插入不成功。IDE最终也会提示错误,但仅仅是一个网络异常。Linux控制台显示警告:

WARNINGHive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = root_20231112140522_fda3dd73-cfa3-4f62-a925-aa02cc107526
Total jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator

然后使用hive命令换为Hive的控制台操作,结果依旧如此

在这里插入图片描述

2、原因分析


经过分析警告翻译:

Hive-on-MRHive 2中已弃用,并且在未来版本中可能不可用。考虑使用不同的执行引擎(例如Spark、Tez)或使用Hive 1.x版本

我们发现,这就很明显了,说明Hive在2.x版本中已经不支持MapReduce了,让你换为Spark或Tex

然而,很多小伙伴都是本地测试时使用的INSERT,更换Spark、Tez可不是那么容易;实际工作中根据生产环境需要可直接进行引擎修改,甚至都不用你修改,底层自动优化自动选择执行引擎

那我要是就不想换,你还能不让我不用MapReduce了?

3、问题解决


经过查找资料,网友们发现将Hive设置成本地模式来执行任务允许你使用MapReduce

1) 临时设置Hive本地模式:

set hive.exec.mode.local.auto=true;

2) 永久设置Hive本地模式:

修改Hive配置文件hive-site.xml,添加如下属性配置:

<property>
    <name>hive.exec.mode.local.auto</name>
    <value>true</value>
</property>

修改配置后需要重启Hive

3) 验证

再次执行INSERT操作,很快就能完成:

在这里插入图片描述

HDFS数据也能写入:

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
hive --service hiveserver2 --hiveconf hive.server2.thrift.port=21066 是一个用于启动HiveServer2服务并将Thrift端口设置为21066的命令。 Hive是一个基于Hadoop数据仓库工具,用于处理和分析大规模的数据集。HiveServer2是Hive的服务器模式,允许用户通过Thrift接口与Hive交互。通过运行上述命令,我们可以启动HiveServer2服务并将Thrift端口设置为21066,这样客户端就可以连接到HiveServer2并执行查询和操作。 启动HiveServer2服务可以让用户通过网络连接到Hive,并通过执行SQL语句查询和操作存储在Hive中的数据。在启动服务时,我们可以通过--hiveconf参数设置一些Hive的配置属性。在上述命令中,通过指定hive.server2.thrift.port属性为21066,我们将Thrift端口设置为21066,这样客户端就可以通过该端口与HiveServer2通信。 通过启动HiveServer2服务,我们可以在分布式环境中运行Hive,并允许多个客户端同时连接和使用Hive。这样可以提高数据处理的效率和灵活性。同时,通过Thrift接口,HiveServer2还可以与其他编程语言进行交互,例如Java、Python等,使得开发人员可以方便地使用自己熟悉的编程语言进行数据处理和分析。 总之,hive --service hiveserver2 --hiveconf hive.server2.thrift.port=21066 是一个启动HiveServer2服务并将Thrift端口设置为21066的命令,通过这个命令我们可以连接到HiveServer2并使用Hive进行数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值