我在 Amazon EMR 中遇到 Apache Hive 查询问题。如何收集日志以便我可以解决这些问题?

Amazon EMR 支持 Hive 的以下使用方法。故障排除步骤因您使用的方法而异:

Hive Shell

Hive 日志存储在 Amazon EMR 集群的主节点上的以下目录中。有关更多信息,请参阅查看日志文件

  • /mnt/var/log/hive/
  • /mnt/var/log/hive/user/

所有与查询相关的错误都记录在 the /mnt/var/log/hive/user/ 目录中。例如,如果您从 Hive Shell 以 hadoop(默认用户)身份运行查询,则运行的任何查询中的错误都将记录在以下目录中:

[hadoop@ip-172-31-33-9 ~]$ cd /mnt/var/log/hive/user/hadoop
[hadoop@ip-172-31-33-9 hadoop]$ tail -20 hive.log

如果以 root (sudo) 身份从 Hive Shell 运行查询,请检查以下日志中是否存在与查询相关的错误:

[hadoop@ip-172-31-33-9 ~]$ cd /mnt/var/log/hive/user/root
[hadoop@ip-172-31-33-9 root]$ tail -20 hive.log

Hue、JDBC 或 ODBC

HiveServer2 允许 Beeline 或 SQL Workbench/J 等客户端对 Hive 运行查询。有关更多信息,请参阅 Apache Hive 网站上的 HiveServer2 概览。如果您在使用 JDBC 或 ODBC 驱动程序从客户端连接到 Hive 时遇到问题,请检查 hive-server2 日志中的错误:

[hadoop@ip-172-31-33-9 ~]$ cd /mnt/var/log/hive/
[hadoop@ip-172-31-27-169 hive]$ ls -ltr
total 52
-rw-r--r-- 1 hive hive 42 May 25 19:29 hive-server2.out
drwxrwxrwt 4 root root 30 May 25 19:29 user
-rw-r--r-- 1 hive hive 49075 May 25 19:29 hive-server2.log

[hadoop@ip-172-31-33-9 hive]$ tail -20 hive-server2.log

hive-server2 日志还可用于解决与服务相关的问题,例如查询速度慢、HiveServer2 启动失败、查询提交问题等。

Amazon EMR 步骤

检查步骤日志,这些日志位于 /var/log/hadoop/steps/ 中。例如:

[hadoop@ip-172-31-33-9 s-3C4CZ9G05FEAX]$cd /var/log/hadoop/steps/s-3C4CZ9G05FEAX
[hadoop@ip-172-31-33-9 s-3C4CZ9G05FEAX]$ ls -ltr
total 12
-rw-rw-r-- 1 hadoop hadoop 0 May 25 21:09 syslog
-rw-rw-r-- 1 hadoop hadoop 1304 May 25 21:09 stdout
-rw-rw-r-- 1 hadoop hadoop 213 May 25 21:09 stderr
-rw-rw-r-- 1 hadoop hadoop 2589 May 25 21:09 controller

YARN 应用程序历史记录

查看和监控 YARN 应用程序详细信息的最简单方法是打开 Amazon EMR 控制台,然后使用集群详细信息页面的 Application history (应用程序历史记录) 选项卡。有关更多信息,请参阅查看应用程序历史记录

要查看运行 Hive 查询时在后台启动的 Tez 或 MapReduce 应用程序中是否发生错误,请检查 Amazon Simple Storage Service (Amazon S3) 上的 YARN 应用程序日志。有关更多信息,请参阅查看存档到 Amazon S3 的日志文件。例如:

$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/
                           PRE containers/
                           PRE node/
                           PRE steps/
$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/node/i-045d100a1fcd13ef2/
                           PRE applications/
                           PRE bootstrap-actions/
                           PRE daemons/
                           PRE provision-node/
                           PRE setup-devices/
$ aws s3 ls s3://aws-logs-223377617334-us-west-2/elasticmapreduce/j-3MCDUQO2MWNJ5/containers/application_1527279117205_0001/container_1527279117205_0001_01_000001/
2018-05-25 15:46:04 842 stdout.gz
2018-05-25 15:46:04 4089 syslog.gz

此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2018 年 10 月 24 日