8.2. metering 调试
当直接与各种组件交互时,可以更容易地调试 metering.以下部分详细介绍如何连接和查询 Presto 和 Hive 以及如何查看 HDFS 组件的仪表板。
本部分所有命令均假设您已通过 OperatorHub 在 openshift-metering 命名空间中安装了 metering。
8.2.1. 获取报告 Operator 日志 复制链接链接已复制到粘贴板!
使用以下命令跟踪 reporting-operator 日志:
$ oc -n openshift-metering logs -f "$(oc -n openshift-metering get pods -l app=reporting-operator -o name | cut -c 5-)" -c reporting-operator
8.2.2. 使用 presto-cli 查询 Presto 复制链接链接已复制到粘贴板!
以下命令将打开交互式 presto-cli 会话,您可通过该会话查询 Presto。该会话与 Presto 在相同容器中运行,并会启动一个额外 Java 实例,可为 pod 创建内存限值。如果出现这种情况,您需要提高 Presto pod 的内存请求和限值。
Presto 默认配置为使用 TLS 进行通信。您必须运行以下命令来运行 Presto 查询:
$ oc -n openshift-metering exec -it "$(oc -n openshift-metering get pods -l app=presto,presto=coordinator -o name | cut -d/ -f2)" \
-- /usr/local/bin/presto-cli --server https://presto:8080 --catalog hive --schema default --user root --keystore-path /opt/presto/tls/keystore.pem
运行完该命令后,系统会提示您运行查询。使用 show tables from metering; 查询来查看表列表:
$ presto:default> show tables from metering;
输出示例
Table
datasource_your_namespace_cluster_cpu_capacity_raw
datasource_your_namespace_cluster_cpu_usage_raw
datasource_your_namespace_cluster_memory_capacity_raw
datasource_your_namespace_cluster_memory_usage_raw
datasource_your_namespace_node_allocatable_cpu_cores
datasource_your_namespace_node_allocatable_memory_bytes
datasource_your_namespace_node_capacity_cpu_cores
datasource_your_namespace_node_capacity_memory_bytes
datasource_your_namespace_node_cpu_allocatable_raw
datasource_your_namespace_node_cpu_capacity_raw
datasource_your_namespace_node_memory_allocatable_raw
datasource_your_namespace_node_memory_capacity_raw
datasource_your_namespace_persistentvolumeclaim_capacity_bytes
datasource_your_namespace_persistentvolumeclaim_capacity_raw
datasource_your_namespace_persistentvolumeclaim_phase
datasource_your_namespace_persistentvolumeclaim_phase_raw
datasource_your_namespace_persistentvolumeclaim_request_bytes
datasource_your_namespace_persistentvolumeclaim_request_raw
datasource_your_namespace_persistentvolumeclaim_usage_bytes
datasource_your_namespace_persistentvolumeclaim_usage_raw
datasource_your_namespace_persistentvolumeclaim_usage_with_phase_raw
datasource_your_namespace_pod_cpu_request_raw
datasource_your_namespace_pod_cpu_usage_raw
datasource_your_namespace_pod_limit_cpu_cores
datasource_your_namespace_pod_limit_memory_bytes
datasource_your_namespace_pod_memory_request_raw
datasource_your_namespace_pod_memory_usage_raw
datasource_your_namespace_pod_persistentvolumeclaim_request_info
datasource_your_namespace_pod_request_cpu_cores
datasource_your_namespace_pod_request_memory_bytes
datasource_your_namespace_pod_usage_cpu_cores
datasource_your_namespace_pod_usage_memory_bytes
(32 rows)
Query 20210503_175727_00107_3venm, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:02 [32 rows, 2.23KB] [19 rows/s, 1.37KB/s]
presto:default>
8.2.3. 使用 beeling 来查询 Hive 复制链接链接已复制到粘贴板!
以下命令将打开交互式 beeline 会话,您可通过该会话查询 Hive。该会话与 Hive 在相同容器中运行,并会启动一个额外 Java 实例,可为 pod 创建内存限值。如果出现这种情况,您需要提高 Hive pod 的内存请求和限值。
$ oc -n openshift-metering exec -it $(oc -n openshift-metering get pods -l app=hive,hive=server -o name | cut -d/ -f2) \
-c hiveserver2 -- beeline -u 'jdbc:hive2://127.0.0.1:10000/default;auth=noSasl'
运行完该命令后,系统会提示您运行查询。使用 show tables 查询来查看表列表:
$ 0: jdbc:hive2://127.0.0.1:10000/default> show tables from metering;
输出示例
+----------------------------------------------------+
| tab_name |
+----------------------------------------------------+
| datasource_your_namespace_cluster_cpu_capacity_raw |
| datasource_your_namespace_cluster_cpu_usage_raw |
| datasource_your_namespace_cluster_memory_capacity_raw |
| datasource_your_namespace_cluster_memory_usage_raw |
| datasource_your_namespace_node_allocatable_cpu_cores |
| datasource_your_namespace_node_allocatable_memory_bytes |
| datasource_your_namespace_node_capacity_cpu_cores |
| datasource_your_namespace_node_capacity_memory_bytes |
| datasource_your_namespace_node_cpu_allocatable_raw |
| datasource_your_namespace_node_cpu_capacity_raw |
| datasource_your_namespace_node_memory_allocatable_raw |
| datasource_your_namespace_node_memory_capacity_raw |
| datasource_your_namespace_persistentvolumeclaim_capacity_bytes |
| datasource_your_namespace_persistentvolumeclaim_capacity_raw |
| datasource_your_namespace_persistentvolumeclaim_phase |
| datasource_your_namespace_persistentvolumeclaim_phase_raw |
| datasource_your_namespace_persistentvolumeclaim_request_bytes |
| datasource_your_namespace_persistentvolumeclaim_request_raw |
| datasource_your_namespace_persistentvolumeclaim_usage_bytes |
| datasource_your_namespace_persistentvolumeclaim_usage_raw |
| datasource_your_namespace_persistentvolumeclaim_usage_with_phase_raw |
| datasource_your_namespace_pod_cpu_request_raw |
| datasource_your_namespace_pod_cpu_usage_raw |
| datasource_your_namespace_pod_limit_cpu_cores |
| datasource_your_namespace_pod_limit_memory_bytes |
| datasource_your_namespace_pod_memory_request_raw |
| datasource_your_namespace_pod_memory_usage_raw |
| datasource_your_namespace_pod_persistentvolumeclaim_request_info |
| datasource_your_namespace_pod_request_cpu_cores |
| datasource_your_namespace_pod_request_memory_bytes |
| datasource_your_namespace_pod_usage_cpu_cores |
| datasource_your_namespace_pod_usage_memory_bytes |
+----------------------------------------------------+
32 rows selected (13.101 seconds)
0: jdbc:hive2://127.0.0.1:10000/default>
8.2.4. 将端口转发到 Hive Web UI 复制链接链接已复制到粘贴板!
运行以下命令来将端口转发到 Hive Web UI:
$ oc -n openshift-metering port-forward hive-server-0 10002
您现在可从浏览器窗口中打开 http://127.0.0.1:10002 以进入 Hive Web 界面。
8.2.5. 端口转发至 HDFS 复制链接链接已复制到粘贴板!
运行以下命令来将 HDFS 名称节点转发到端口:
$ oc -n openshift-metering port-forward hdfs-namenode-0 9870
您现在可从浏览器窗口中打开 http://127.0.0.1:9870 以进入 HDFS Web 界面。
运行以下命令将端口转发到第一个 HDFS 数据节点:
$ oc -n openshift-metering port-forward hdfs-datanode-0 9864
- 1
- 要检查其他数据节点,将
hdfs-datanode-0替换为您要查看信息的 pod。
8.2.6. Metering Ansible Operator 复制链接链接已复制到粘贴板!
metering 会使用 Ansible Operator 来监控和协调集群环境中的资源。调试失败的 metering 安装时,查看 Ansible 日志或 MeteringConfig 自定义资源的状态会很有帮助。
8.2.6.1. 访问 Ansible 日志 复制链接链接已复制到粘贴板!
在默认安装中,metering Operator 会被部署为 pod。这种情况下,可进入 pod 检查 Ansible 容器日志:
$ oc -n openshift-metering logs $(oc -n openshift-metering get pods -l app=metering-operator -o name | cut -d/ -f2) -c ansible
或者,还可查看 Operator 容器的日志(将 -c ansible 替换为 -c operator)以获取压缩输出。
8.2.6.2. 检查 MeteringConfig 状态 复制链接链接已复制到粘贴板!
查看 MeteringConfig 自定义资源的 .status 字段有助于调试任何最新故障。以下命令显示类型为 Invalid 的状态消息:
$ oc -n openshift-metering get meteringconfig operator-metering -o=jsonpath='{.status.conditions[?(@.type=="Invalid")].message}'
8.2.6.3. 检查 MeteringConfig 事件 复制链接链接已复制到粘贴板!
检查 Metering Operator 正在生成的事件。这对安装或升级调试任何资源失败非常有用。按最后一次时间戳对事件排序:
$ oc -n openshift-metering get events --field-selector involvedObject.kind=MeteringConfig --sort-by='.lastTimestamp'
输出显示 MeteringConfig 资源的最新更改:
LAST SEEN TYPE REASON OBJECT MESSAGE
4m40s Normal Validating meteringconfig/operator-metering Validating the user-provided configuration
4m30s Normal Started meteringconfig/operator-metering Configuring storage for the metering-ansible-operator
4m26s Normal Started meteringconfig/operator-metering Configuring TLS for the metering-ansible-operator
3m58s Normal Started meteringconfig/operator-metering Configuring reporting for the metering-ansible-operator
3m53s Normal Reconciling meteringconfig/operator-metering Reconciling metering resources
3m47s Normal Reconciling meteringconfig/operator-metering Reconciling monitoring resources
3m41s Normal Reconciling meteringconfig/operator-metering Reconciling HDFS resources
3m23s Normal Reconciling meteringconfig/operator-metering Reconciling Hive resources
2m59s Normal Reconciling meteringconfig/operator-metering Reconciling Presto resources
2m35s Normal Reconciling meteringconfig/operator-metering Reconciling reporting-operator resources
2m14s Normal Reconciling meteringconfig/operator-metering Reconciling reporting resources