笔记——hive使用本地hadoop环境查询表

文章详细描述了在Hive中执行SQL查询的过程,包括输入代码示例、显示的Job信息,以及在本地模式下解析和解释查询执行,特别提到在本地Hadoop环境中的操作和配置。
摘要由CSDN通过智能技术生成

1、hive输入的代码:

select count(*) from t_user;

2、显示:

Query ID = hadoop_20231210194631_c60435f0-0a21-477b-b715-1a4d8a8c5153

Total jobs = 1

Launching Job 1 out of 1

Number of reduce tasks determined at compile time: 1

In order to change the average load for a reducer (in bytes):

  set hive.exec.reducers.bytes.per.reducer=<number>

In order to limit the maximum number of reducers:

  set hive.exec.reducers.max=<number>

In order to set a constant number of reducers:

  set mapreduce.job.reduces=<number>

Job running in-process (local Hadoop)

2023-12-10 19:46:38,893 Stage-1 map = 0%,  reduce = 0%

2023-12-10 19:46:39,945 Stage-1 map = 100%,  reduce = 0%

2023-12-10 19:46:40,956 Stage-1 map = 100%,  reduce = 100%

Ended Job = job_local674918904_0001

MapReduce Jobs Launched: 

Stage-Stage-1:  HDFS Read: 268736 HDFS Write: 49799862 SUCCESS

Total MapReduce CPU Time Spent: 0 msec

OK

6040

Time taken: 9.392 seconds, Fetched: 1 row(s)

原因:使用本地的 Hadoop 环境而不是分布式的 Hadoop 集群

3、解析:

Hive 查询的唯一标识符和有关执行的一些信息:

Query ID = hadoop_20231210194631_c60435f0-0a21-477b-b715-1a4d8a8c5153
Total jobs = 1

Hive 在查询计划编译时确定的 reduce 任务数量:

Number of reduce tasks determined at compile time: 1

一些与 reduce 任务相关的配置建议,可以根据需要调整这些配置参数:

In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>

In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>

In order to set a constant number of reducers:
  set mapreduce.job.reduces=<number>

当前的 MapReduce 任务在本地 Hadoop 进程中运行,而不是在分布式 Hadoop 集群中:

Job running in-process (local Hadoop)

MapReduce 任务结束:

Ended Job = job_local674918904_0001

有关 HDFS 读取和写入的一些信息,指示了该任务从 HDFS 读取了 268,736 字节,写入了 49,799,862 字节:

Stage-Stage-1:  HDFS Read: 268736 HDFS Write: 49799862 SUCCESS

4、解释:

Hive 在本地模式(Local Mode)下执行的条件通常是查询的输入数据量较小,不足以正式启动整个分布式 Hadoop 集群。本地模式是为了避免在小规模数据上启动分布式任务的开销而设计的。

在本地模式下,Hive 将查询转换为本地的 MapReduce 任务,并在本地执行,而不是通过 Hadoop 集群上的 TaskTracker 运行任务。这对于在本地计算机上快速测试和调试查询非常有用,尤其是在开发和调试阶段。

在本地模式下执行的查询输出中会有一些指示,例如 “Job running in-process (local Hadoop)” 表示当前任务在本地 Hadoop 进程中运行。

在实际生产环境中,Hive 会自动判断查询的数据规模,并决定是在本地执行还是在分布式集群上执行。

如果要强制在分布式集群上运行查询,需确保Hadoop 集群配置正确,并且 Hive 可以连接到集群上的元数据存储和数据存储。在这种情况下,Hive 将根据配置选择适当的执行模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值