【问题标题】:View number of nodes used in Hive queries查看 Hive 查询中使用的节点数
【发布时间】:2018-10-22 13:56:42
【问题描述】:

我需要在运行 hive 查询时查看我的 HDinsights 集群中使用的节点数。我如何在运行查询时查看此内容。我知道 Ambari 视图提供了这一点,但我在哪里可以获得节点和使用的存储的确切数量。谢谢

【问题讨论】:

  • 您需要从 Hive 日志中提取 YARN 作业 ID (在使用 JDBC/ODBC 的自定义代码时,这有点棘手,因为 Hive 不使用通常的通道进行异步通知) i> 然后在 YARN ResourceManager UI 中检查作业状态——或通过命令行yarn application -status <id>
  • 注意,job_xxxxxx_xxxx 是旧的作业 ID 命名约定(Cloudera 附带的旧版 Job HistoryServer 仍在使用),RM 使用 application_xxxxxx_xxxx
  • 容器放置的细节在RM中在当前“尝试”下可见——或者当工作结束时,可以从HistoryServer/TimelineServer中每个归档日志的header中提取出来

标签: azure hive mapreduce azure-hdinsight


【解决方案1】:

运行作业后,查看当前的 Jobtracker 日志,您可能会看到类似这样的条目 -

2014-01-23 20:14:59,136 INFO org.apache.hadoop.mapred.JobInProgress: Input size for job job_201401221948_0006 = 1395667. Number of splits = 7
2014-01-23 20:14:59,137 INFO org.apache.hadoop.mapred.JobInProgress: tip:task_201401221948_0006_m_000000 has split on node:/fd0/ud0/localhost
2014-01-23 20:14:59,137 INFO org.apache.hadoop.mapred.JobInProgress: tip:task_201401221948_0006_m_000001 has split on node:/fd0/ud0/localhost

......

如果您看到 Number of splits=1,则将有一个地图任务,并且您知道将仅使用节点。

当拆分数 > 1 时,对于每个拆分,您将看到使用 Tasktracker 节点信息创建的地图任务,如下所示 -

2014-01-23 20:14:59,153 INFO org.apache.hadoop.mapred.JobTracker: Adding task (JOB_SETUP) 'attempt_201401221948_0006_m_000008_0' to tip task_201401221948_0006_m_000008, for tracker 'tracker_workernode7:127.0.0.1/127.0.0.1:49200'

【讨论】:

  • 感谢 Mayank。但我正在寻找检查单个配置单元查询用于处理多少节点的选项。
  • 感谢 Mayank。那么输入拆分如何等于节点数。我可以有一个输入拆分,它可以存储到两个不同的节点中。
  • 我有一个两个节点集群,每个集群大小为 256 MB,输入文件大小为 512 MB,我的块和输入拆分大小为 128 MB。因此,当我运行这个文件时,它将被分成四个不同的块(每个 128 MB)和 4 个输入拆分。因此,在这种情况下,4 个输入拆分将不计入 4 个不同的节点。希望我的问题很清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多