IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> BI 系统问题记录 -> 正文阅读

[大数据]BI 系统问题记录

环境 Logback + Filebeat + Kafka + ClicksHoue + Metabase

问题一,生产环境发现 Clickhouse 不再消费 Kafka 中数据。

涉及到的各项配置:

filebeat:

apiVersion: v1
kind: ConfigMap
metadata:
  name: 名称
  #  namespace: kube-system
  labels:
    k8s-app: 名称
data:
  OUTPUT_KAFKA_HOSTS: kafka地址
  filebeat.yml: |-
    filebeat.config.inputs:
      enabled: true
      reload.enabled: true
      reload.period: 10s
    filebeat.inputs:
      - type: log
        paths:
          - /文件地址
    output.kafka:
      enabled: true
      # initial brokers for reading cluster metadata
      hosts: '${OUTPUT_KAFKA_HOSTS}'
      topics:
        - topic: "topic1"
          when.contains:
            message: "\"标识字段\":\"标识字段内容1\""
        - topic: "topic2"
          when.contains:
            message: "\"标识字段\":\"标识字段内容2\""
      partition.round_robin:
        reachable_only: false
      version: '2.6.0'
      required_acks: 1
      compression: gzip
      # max_message_bytes: 1000000
      codec.format:
        string: '%{[message]}'

Kafka 买的现成的

clickhouse 虽说是买的现成的,但是表还是自己创建的,

就是官网拔下来的也不贴了。

排查思路:

查看clickhouse报错

select * from system.errors

Cannot parse input: expected '{' before: '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'

又去看了kafka topic 里的内容发现确实是有 \0x00。

cat命令是看不到的。
用的vi看到的。

定位下是 logback 问题 还是 Filebeat 问题

grep -Pa ‘\x00\x00\x00\x00\x00’ /日志目录 -nr 发现没有,初步定位问题为 Filebeat 导致的。
但是自己重现不了。
考虑到 filebeat的input 目前是按文本字符串来处理日志的,改为 json形式获取

解决,修改 filebeat 配置。

修改后

apiVersion: v1
kind: ConfigMap
metadata:
  name: 名字
  #  namespace: kube-system
  labels:
    k8s-app: 名字
data:
  OUTPUT_KAFKA_HOSTS: kafka地址
  filebeat.yml: |-
    filebeat.config.inputs:
      enabled: true
      reload.enabled: true
      reload.period: 10s
    filebeat.inputs:
      - type: log
        paths:
          - /日志目录
        json.keys_under_root: true
        json.overwrite_keys: true
        #  json.message_key: message
        json.add_error_key: true
        json.ignore_decoding_error: true
    output.kafka:
      enabled: true
      # initial brokers for reading cluster metadata
      hosts: '${OUTPUT_KAFKA_HOSTS}'
      topics:
        - topic: "topic1"
          when.equals:
            标识字段: "标识字段内容1"
        - topic: "topic2"
          when.equals:
            标识字段: "标识字段内容2"
      partition.round_robin:
        reachable_only: false
      version: '2.6.0'
      required_acks: 1
      compression: gzip

问题二 一个输出想入到clickhouse俩个字段中

解决方案:改sql ,放弃 select * ,改为自定义

CREATE TABLE.XXX_queue ON CLUSTER `集群名`
(
`eventStartTime` UInt64,
其他字段
 )
 ENGINE = Kafka  其他kafka配置。

CREATE MATERIALIZED VIEW.XXX_mv  ON CLUSTER `集群名` TO.XXX AS
select
    `ts` as `eventStartTimeTs`,
    `dtts` as `eventStartTime`,
    其他字段
from  (
          SELECT *,eventStartTime as ts,fromUnixTimestamp64Milli(toInt64(`eventStartTime`)) as dtts
          FROM.XXX_queue
      ) tmp_source;

问题三: MetaBase Clickhouse时区问题。

定位问题所使用的命令

clickhouse 涉及 命令,(最终发现所有clickhouse的时区都是 Asia/Shanghai)

查看 时区相关设置
select * from system.settings where name like '%zone%'
查看时区
SELECT timezone()
查看配置文件中的时区,默认是注释掉的
cat /etc/clickhouse-server/config.xml
查看服务器时区  
date +%z

修改metabse使用的链接参数
use_client_time_zone=1   #使用客户端时区, 未生效 
se_time_zone=UTC+8&use_server_time_zone=UTC+8   #使用服务端时区, 同样未生效 

Metabase 涉及命令 (同样Metabase的时区也都是 Asia/Shanghai)

查看服务器时区  
date +%z
查看 env是否成功配置
env
metabase  sql 执行窗口 来验证时区是否生效。
select now(),toString(now()),timezone()
以及直接打开表来验证 datetime 类型的是否显示正确。

最终确定问题为 clickhouse.metabase-driver.jar 问题。

当使用 0.7.5 版本时可以正常显示
当使用 0.8.1 版本时不可以正常显示

涉及的组件部署文件:

#  clickhouse  docker-compose.yml
version: "3"
services:
    server:
     image: yandex/clickhouse-server
     ports:
     - "8123:8123"
     - "9000:9000"
     - "9009:9009"
     volumes:
      - D:\docker\clickhouse\tmp:/tmp
      - D:\docker\clickhouse\data/:/var/lib/clickhouse/data 
     environment:
         TZ: Asia/Shanghai
     ulimits:
      nproc: 65535
      nofile:
       soft: 262144
       hard: 262144
    client:
      image: yandex/clickhouse-client
      command: ['--host', 'server']
#  metabase  docker-compose.yml
version: "3"
services:
    metabase:
       # image: metabase/metabase:v0.43.0-rc1
       # image: metabase/metabase:v0.42.4
       image: metabase/metabase:v0.41.3.1
       entrypoint: [ "bash", "-c", "apk add --no-cache tzdata && wget -P /plugins https://github.com/enqueue/metabase-clickhouse-driver/releases/download/0.7.5/clickhouse.metabase-driver.jar && /app/run_metabase.sh"]  
       volumes:
         # - D:\docker\metabase\plugins:/plugins
         - C:\Windows\System32\drivers\etc\hosts:/etc/hosts

       ports:
         - "3000:3000"
       environment:
         TZ: Asia/Shanghai
         JAVA_TIMEZONE: Asia/Shanghai 
         MB_DB_TYPE: mysql
         MB_DB_DBNAME: metabase
         MB_DB_PORT: 3306
         MB_DB_USER: root
         MB_DB_PASS: 123456
         MB_DB_HOST: host.docker.internal
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:12:55  更:2022-04-29 12:15:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:07:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码