网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
启动Hadoop,使用hiveserver2
启动Hive的JDBC服务并使用IDE连接到Hive,创建表成功,但是INSERT插入数据时经过长时间加载后无法得到预期结果,插入不成功。IDE最终也会提示错误,但仅仅是一个网络异常。Linux控制台显示警告:
WARNING:Hive-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-MR
在Hive 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>
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**