使用 Impala 日志(翻译)

使用 Impala 日志

Impala 日志包括以下信息:

  • Impala 遇到的任何错误。假如在 Impala 在启动时遇到了严重的错误,你必须先诊断并排除故障后才能进一步在 Impala 上执行操作
  • Impala 的配置信息
  • Impala 完成的任务
  注意:

之前,日志包含了每个查询的 profile,收集了低级别的详细信息,包括不同节点之间工作如何分配、中间和最终结果如何通过网络传输。为了节省硬盘空间,这些查询的 profile 现在以 zlib 格式的压缩存放在 /var/log/impala/profiles 中。你可以通过 Impala web 用户接口访问。例如,在 http://impalad-node-hostname:25000/queries 页面,每个查询后面的 Profile 列里有链接指向一个关于查询的简单分析数据(extensive analytical data)页面。

Cloudera Impala 1.1.1 引入的审计功能在可用的时候,提供一组单独的审计日志。 See Auditing Impala Operations for details.

Cloudera推荐通过 Cloudera Manager 管理接口安装 Impala。为了协助故障排除,Cloudera Manager 把前端(front-end)个后端(back-end)的日志采集到单一视图中,允许你查询所有受控节点的日志数据,而不是逐个节点单独的检查日志。假如你使用 Cloudera Manager 安装的 Impala,请参考Cloudera Manager Monitoring and Diagnostics Guide中服务监控和搜索日志章节了解详细信息。

假如你在非 Cloudera Manager 管理环境中使用 Impala,在每个节点上检查日志:

  • 默认日志存放在 /var/log/impala下。安装 启动 Impala 中描述修改配置文件设置此文件位置
  • impalad 进程的日志文件(significant files)包括 impalad.INFOimpalad.WARNING, 和 impalad.ERROR,以及很罕见的 impalad.FATAL
  • statestored 进程的日志文件(significant files)包括 statestored.INFOstatestored.WARNING, 和 statestored.ERROR,以及很罕见的 statestored.FATAL
  • catalogd 进程的日志文件(significant files)包括 catalogd.INFOcatalogd.WARNING, 和 catalogd.ERROR,以及很罕见的 catalogd.FATAL
  • 检查 .INFO 文件查看进程的配置设置
  • 检查 .WARNING 文件查看所有问题信息,包括次优设置(suboptimal settings)和很严重的运行错误
  • 检查 .ERROR 和/或 .FATAL 文件查看最严重的错误,如进程崩溃或查询失败无法完成。这些信息同样在 .WARNING文件中
  • 当相关守护进程重启时会新产生一组日志。这些日志文件名是中间包含时间戳信息的长文件名。而 .INFO, .WARNING, and .ERROR 实际是最新应用日志文件的软链接
  • impala-server 服务的初始化脚本同样也产生一个混合日志文件 /var/logs/impalad/impala-server.log,其中包含 .INFO, .WARNING, 和 .ERROR 文件的混合信息(A new set of log files is produced each time the associated daemon is restarted. These log files have long names including a timestamp. The .INFO, .WARNING, and .ERROR files are physically represented as symbolic links to the latest applicable log files)
  • impala-state-store 服务的初始化脚本同样也产生一个混合日志文件 /var/logs/impalad/impala-state-store.log, 其中包含 .INFO, .WARNING, 和 .ERROR 文件的混合信息

Impala 使用 glog_v 日志系统存储信息。你会见到许多信息参考了 C++ 文件名(You will see some messages referring to C++ file names)。日志受以下因素影响:

  • GLOG_v 环境变量指定了何种类型的信息被记录。参见设置日志级别了解详细信息
  • impalad 守护进程的 -logbuflevel 启动标识指定了日志信息刷新到硬盘的频率。默认值为 0,意味着当 Impala 输出重要信息如警告或错误时立即刷新到硬盘,而较不重要的信息如一般信息(informational ones)将被缓存而不是立即刷新到硬盘里。
  • Cloudera Manager 中有设置 Impala 中 -logbuflevel 启动选项的配置

与 Impala 日志相关的主要管理任务是:

  • 审查 Impala 日志
  • 理解 Impala 日志内容
  • 设置日志级别

审查 Impala 日志

Impala 日志默认存放在 /var/logs/impalad/。内容最全面的日志是 impalad.INFO,包括信息(Informational)、警告和错误。使用 web 接口或直接查看日志文件来检查日志(当你通过文件系统检查日志,可以通过阅读 impalad.WARNING 和/或 impalad.ERROR 文件来排除故障,其中包含了系统潜在问题的子集)。

在一台使用默认配置的名叫 impala.example.com 的机器上,你可以使用浏览器访问 http://impala.example.com:25000/logs 来查看日志。

  注意:

Web 接口限制了显示的日志信息的数量。通过文件系统访问来查看每条日志

你可以通过文件系统来查看 impalad.INFO 日志。使用默认设置时,使用下面命令显示日志的起始部分:

[user@example impalad]$ pwd
/var/log/impalad
[user@example impalad]$ more impalad.INFO 
Log file created at: 2013/01/07 08:42:12
Running on machine: impala.example.com
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0107 08:42:12.292155 14876 daemon.cc:34] impalad version 0.4 RELEASE (build 9d7fadca0461ab40b9e9df8cdb47107ec6b27cff)
Built on Fri, 21 Dec 2012 12:55:19 PST
I0107 08:42:12.292484 14876 daemon.cc:35] Using hostname: impala.example.com
I0107 08:42:12.292706 14876 logging.cc:76] Flags (see also /varz are on debug webserver):
--dump_ir=false
--module_output=
--be_port=22000
--classpath=
--hostname=impala.example.com
  注意:前面的例子只显示了日志文件的一小部分。Impala 日志文件通常有几M大。

理解 Impala 日志内容

日志存储 Impala 启动项的信息。Impala 启动时这些信息显示一次,可能包括:

  • 机器名
  • Impala 版本号
  • Impala 启动参数(Flags used to start Impala)
  • CPU 信息
  • 可用硬盘空间

这是 Impala 运行的每一个 job 的信息。因为每一个 Impala job 会另外创建一组有关查询的数据,job 特定数据可能非常大。日志可能会包括 job 的详细信息。这些详细的日志条目可能包括:

  • 查询的组成(The composition of the query)
  • 数据本地化的程度(The degree of data locality)
  • 数据吞吐量和响应时间的统计(Statistics on data throughput and response times)

设置日志级别

Impala 使用支持三种日志级别的 GLOG 系统。你可以使用 Cloudera Manager Admin Console 调整日志级别。你也可以通过设置环境变量(exporting variable settings)方式从而不通过 Cloudera Manager Admin Console 调整日志级别。在每个节点上启动 impalad 之前,使用类似下面的命令,来手工修改日志设置:

export GLOG_v=1

关于如何配置 GLOG,包括为不同的系统组件设置不同的日志级别,参见 How To Use Google Logging Library (glog)。

理解不同日志级别记录日志内容的不同

当日志级别增加,记录的信息类别是累加的。例如, GLOG_v=2 时是记录所有 GLOG_v=1 时的记录,以及其他信息。

提高日志级别会增加性能开销增大日志大小。Cloudera 推荐大多数情况使用 GLOG_v=1 : 这一级别产生最小的性能影响但仍然获取有用的故障排除信息。

每一日志级别记录的信息如下::

  • GLOG_v=1 - 默认级别。日志信息包括每一个连接和查询在 imaplad 实例初始化的信息,以及运行时 pfofile
  • GLOG_v=2 - 之前日志级别的所有信息,再加上每次 RPC 初始化信息。这一级别还记录查询执行过程信息,包括所读取的每个文件的信息
  • GLOG_v=3 - 之前日志级别的所有信息,再加上读取的每一行的信息。这一级别只是用于最严重的故障排除和性能调整,因为它将产生异常大和详细大日志文件

你可能感兴趣的:(使用 Impala 日志(翻译))