吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

替代ELK:ClickHouse+Kafka+FlieBeat才是最絕的

電子工程師 ? 來源: 芋道源碼 ? 作者: 芋道源碼 ? 2022-10-09 17:41 ? 次閱讀

來源:juejin.cn/post/7120880190003085320

背景

Elasticsearch 與 ClickHouse

成本分析

環境部署

總結

背景

saas業務業務未來需要業務管理、業務管理等業務能力。

為了平臺系統能力、我們需要完善數據集來幫助運營分析活動效果、提升運營能力。

如果在實際過程中直接部署系統,對于用戶來說,將是一個巨大的數據比較能力的服務器。我們在開發中使用折中方案完善數據分析。

Elasticsearch 與 ClickHouse

ClickHouse是一款系統列式對數據庫管理的測試,我們使用ClickHouse進行了以下優勢:

①ClickHouse 輸入商品

單服務器記錄寫入量在 50MB 到 50MB/秒,記錄寫入超過 60w 個數,是 ES 的 5 倍以上。

在 ES 中比較常見的寫 Rejected 導致數據丟失、寫入延遲等問題,在 ClickHouse 中不容易發生。

②查詢速度快

網頁緩存中的快速數據,在頁面緩存中的快速查詢單 2-30GB/查詢速度;沒有在的情況下,查詢查詢結果的查詢速度和數據查詢速度比 ES ClickHouse 5-30倍以上。

③點擊費用比ES費用多少

Click House 的 ES 高,同樣數據占用的計算機空間比 ES 的 1/0 使用 1/03 次,可以節省空間的同時,也能有效地減少碳 IO,這也是 Click 查詢效率更高的原因之一。

be5e8cce-3568-11ed-ba43-dac502259ad0.png

點擊使用House的內存資源,可以比用CPU的資源。

be7beddc-3568-11ed-ba43-dac502259ad0.png

成本分析

備注:在沒有任何折扣的情況下,基于阿里云分析。

be8f6d62-3568-11ed-ba43-dac502259ad0.png

環境部署

動物園管理員聚集部署

bec276bc-3568-11ed-ba43-dac502259ad0.png

yuminstalljava-1.8.0-openjdk-devel.x86_64
/etc/profile配置環境變量
更新系統時間
yuminstallntpdate
ntpdateasia.pool.ntp.org

mkdirzookeeper
mkdir./zookeeper/data
mkdir./zookeeper/logs

wget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar-zvxfapache-zookeeper-3.7.1-bin.tar.gz-C/usr/zookeeper

exportZOOKEEPER_HOME=/usr/zookeeper/apache-zookeeper-3.7.1-bin
exportPATH=$ZOOKEEPER_HOME/bin:$PATH

進入ZooKeeper配置目錄
cd$ZOOKEEPER_HOME/conf

新建配置文件
vizoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/data
dataLogDir=/usr/zookeeper/logs
clientPort=2181
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

在每臺服務器上執行,給zookeeper創建myid
echo"1">/usr/zookeeper/data/myid
echo"2">/usr/zookeeper/data/myid
echo"3">/usr/zookeeper/data/myid

進入ZooKeeperbin目錄
cd$ZOOKEEPER_HOME/bin
shzkServer.shstart

卡夫卡基地部署

mkdir-p/usr/kafka
chmod777-R/usr/kafka
wget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.2.0/kafka_2.12-3.2.0.tgz
tar-zvxfkafka_2.12-3.2.0.tgz-C/usr/kafka


不同的brokerId設置不一樣,比如1,2,3
broker.id=1
listeners=PLAINTEXT://ip:9092
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dir=/usr/kafka/logs
num.partitions=5
num.recovery.threads.per.data.dir=3
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
zookeeper.connection.timeout.ms=30000
group.initial.rebalance.delay.ms=0

后臺常駐進程啟動kafka
nohup/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-start.sh/usr/kafka/kafka_2.12-3.2.0/config/server.properties>/usr/kafka/logs/kafka.log>&1&

/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-stop.sh

$KAFKA_HOME/bin/kafka-topics.sh--list--bootstrap-serverip:9092

$KAFKA_HOME/bin/kafka-console-consumer.sh--bootstrap-serverip:9092--topictest--from-beginning

$KAFKA_HOME/bin/kafka-topics.sh--create--bootstrap-serverip:9092--replication-factor2--partitions3--topicxxx_data

FileBeat 部署

sudorpm--importhttps://packages.elastic.co/GPG-KEY-elasticsearch

Createafilewitha.repoextension(forexample,elastic.repo)inyour/etc/yum.repos.d/directoryandaddthefollowinglines:
在/etc/yum.repos.d/目錄下創建elastic.repo

[elastic-8.x]
name=Elasticrepositoryfor8.xpackages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yuminstallfilebeat
systemctlenablefilebeat
chkconfig--addfilebeat

FileBeat配置文件說明,坑點1(需設置keys_under_root: true)。如果不設置kafka的消息字段如下:

bf018dac-3568-11ed-ba43-dac502259ad0.png

文件目錄:/etc/filebeat/filebeat.yml

filebeat.inputs:
-type:log
enabled:true
paths:
-/root/logs/xxx/inner/*.log
json:
如果不設置該索性,所有的數據都存儲在message里面,這樣設置以后數據會平鋪。
keys_under_root:true
output.kafka:
hosts:["kafka1:9092","kafka2:9092","kafka3:9092"]
topic:'xxx_data_clickhouse'
partition.round_robin:
reachable_only:false
required_acks:1
compression:gzip
processors:
剔除filebeat無效的字段數據
-drop_fields:
fields:["input","agent","ecs","log","metadata","timestamp"]
ignore_missing:false

nohup./filebeat-e-c/etc/filebeat/filebeat.yml>/user/filebeat/filebeat.log&
輸出到filebeat.log文件中,方便排查

clickhouse 部署

bf2568a8-3568-11ed-ba43-dac502259ad0.png

檢查當前CPU是否支持SSE4.2,如果不支持,需要通過源代碼編譯構建
grep-qsse4_2/proc/cpuinfo&&echo"SSE4.2supported"||echo"SSE4.2notsupported"
返回"SSE4.2supported"表示支持,返回"SSE4.2notsupported"表示不支持

創建數據保存目錄,將它創建到大容量磁盤掛載的路徑
mkdir-p/data/clickhouse
修改/etc/hosts文件,添加clickhouse節點
舉例:
10.190.85.92bigdata-clickhouse-01
10.190.85.93bigdata-clickhouse-02

服務器性能參數設置:
cpu頻率調節,將CPU頻率固定工作在其支持的最高運行頻率上,而不動態調節,性能最好
echo'performance'|tee/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

內存調節,不要禁用overcommit
echo0|tee/proc/sys/vm/overcommit_memory

始終禁用透明大頁(transparent huge pages)。它會干擾內存分配器,從而導致顯著的性能下降
echo'never'|tee/sys/kernel/mm/transparent_hugepage/enabled

首先,需要添加官方存儲庫:
yuminstallyum-utils
rpm--import
yum-config-manager--add-repo

查看clickhouse可安裝的版本:
yumlist|grepclickhouse
運行安裝命令:
yum-yinstallclickhouse-serverclickhouse-client

修改/etc/clickhouse-server/config.xml配置文件,修改日志級別為information,默認是trace
information
執行日志所在目錄:

正常日志
/var/log/clickhouse-server/clickhouse-server.log
異常錯誤日志
/var/log/clickhouse-server/clickhouse-server.err.log

查看安裝的clickhouse版本:
clickhouse-server--version
clickhouse-client--password

sudoclickhousestop
sudoclickhousetart
sudoclickhousestart
bf4ae7d6-3568-11ed-ba43-dac502259ad0.png

clickhouse 部署過程中遇到的一些問題如下:

①點擊house創建kafka引擎表:

CREATETABLEdefault.kafka_clickhouse_inner_logONCLUSTERclickhouse_cluster(
log_uuidString,
date_partitionUInt32,
event_nameString,
activity_nameString,
activity_typeString,
activity_idUInt16
)ENGINE=KafkaSETTINGS
kafka_broker_list='kafka1:9092,kafka2:9092,kafka3:9092',
kafka_topic_list='data_clickhouse',
kafka_group_name='clickhouse_xxx',
kafka_format='JSONEachRow',
kafka_row_delimiter='
',
kafka_num_consumers=1;

1:clikhouse 客戶端問題無法查詢 kafka 引擎

不允許直接選擇。要啟用使用設置 stream_like_engine_allow_direct_select.(QUERY_NOT_ALLOWED)(版本 22.5.2.53(官方構建))

bfa1f3dc-3568-11ed-ba43-dac502259ad0.png

解決方案:

需要在clickhouseclient創建加上--stream_like_engine_allow_direct_select1

clickhouse-client--stream_like_engine_allow_direct_select1--passwordxxxxx
c02e495e-3568-11ed-ba43-dac502259ad0.png

②點擊房屋創建本地節點表

2:無法開啟本地表宏

代碼:62。DB::Exception:[10.74.244.57:9000] 上出現錯誤:代碼:62.DB::Exception:在處理“/clickhouse/tables/default/”中的替換時,配置中沒有宏“碎片” bi_inner_log_local/{shard}' at '50' 或宏在這里不受支持。(SYNTAX_ERROR)(版本 22.5.2.53(官方版本))。(SYNTAX_ERROR) (版本 22.5.2.53 (正式版))

創建本地表(使用復制去重表引擎)
createtabledefault.bi_inner_log_localONCLUSTERclickhouse_cluster(
log_uuidString,
date_partitionUInt32,
event_nameString,
activity_nameString,
credits_bringInt16,
activity_typeString,
activity_idUInt16
)ENGINE=ReplicatedReplacingMergeTree('/clickhouse/tables/default/bi_inner_log_local/{shard}','{replica}')
PARTITIONBYdate_partition
ORDERBY(event_name,date_partition,log_uuid)
SETTINGSindex_granularity=8192;

解決方案:在不同的clickhouse節點上配置不同的分片,每個節點的分片名稱不能一致。


01
example01-01-1

c0dbc840-3568-11ed-ba43-dac502259ad0.pngc126c296-3568-11ed-ba43-dac502259ad0.png

3:clickhouse中節點數據已經存在

代碼:253。DB::Exception:出現錯誤:代碼:253。DB::Exception:副本/clickhouse/tables/default/bi_inner_log_local/01/replicas/example01-01-1 已存在。(REPLICA_IS_ALREADY_EXIST)(版本 22.5.2.53(官方版本))。(REPLICA_IS_ALREADY_EXIST)(版本 22.5.2.53(官方構建))

解決方案:進入zookeeper客戶端刪除相關節點,然后再重新創建ReplicatedReplaceingMergeTree表。這樣可以保障每一個clickhouse節點去消費kafka分區的數據。

③點擊房屋創建聚會表

日志(根據日志_uuid 分發給數據,相同的日志_uuid 會發送到同一時間的數據分片上重發):

CREATETABLEdefault.bi_inner_log_allONCLUSTERclickhouse_clusterASdefault.bi_inner_log_local
ENGINE=Distributed(clickhouse_cluster,default,bi_inner_log_local,xxHash32(log_uuid));

4:自動查詢表無法查詢

代碼:516。DB::Exception:從 10.74.244.57:9000 接收。DB::Exception:默認值:身份驗證失敗:密碼不正確或沒有該名稱的用戶。(AUTHENTICATION_FAILED) (版本 22.5.2.53 (正式版))

解決方案:

 

 

 
 
true

ip1
9000
default
xxxx



true

ip2
9000
default
xxxx




④點擊房屋創建物化視圖

創建物化物,把查看 Kafka 消費表消費的同步 ClickHouse 表格數據表。

CREATEMATERIALIZEDVIEWdefault.view_bi_inner_logONCLUSTERclickhouse_clusterTOdefault.bi_inner_log_allAS
SELECT
log_uuid,
date_partition,
event_name,
activity_name,
credits_bring,
activity_type,
activity_id
FROMdefault.kafka_clickhouse_inner_log;

小結:不負有心人,解決完以上所有的問題。數據流轉通了!這里所有組件都是功夫文檔比較新的版本,所以過程中問題的解決基本都是官方或操作手冊一步一步的解決。

c15ffa02-3568-11ed-ba43-dac502259ad0.png

總結一句話:問題遇到去解決或--幫助去解決,慢慢的你的官方升華。

總結

整個部署的過程中有一個坑,特別是filebeat yml的參數設置和clickhouse的配置說明。

很久沒有更新了,經常看到博客35歲以后辦的問題。說實話我自己也不會好以后怎么辦,核心還是持續的&輸出。不斷的博客制造了自己的護城河,不管是技術專家、業務專家、架構、管理等。

個人建議如果能經常寫代碼就奮戰一線,管理徹底與公司綁定。

如果所在行業的公司還是已經選擇了整體的商業影響力,個人覺得可以奮戰在一線,未來的工作。考量更多的影響力、感覺、技術架構。現在的我 35,從容的面對一天。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SaaS
    +關注

    關注

    1

    文章

    363

    瀏覽量

    37031
  • 數據庫
    +關注

    關注

    7

    文章

    3846

    瀏覽量

    64685
  • kafka
    +關注

    關注

    0

    文章

    52

    瀏覽量

    5243

原文標題:替代ELK:ClickHouse+Kafka+FlieBeat才是最絕的

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    華為云 FlexusX 實例下的 Kafka 集群部署實踐與性能優化

    前言 華為云 FlexusX 實例,以創新的柔性算力技術,為 Kafka 集群部署帶來前所未有的性能飛躍。其靈活的 CPU 與內存配比,結合智能調度與加速技術,讓 Kafka 在高并發場景下依然
    的頭像 發表于 01-07 17:23 ?186次閱讀
    華為云 FlexusX 實例下的 <b class='flag-5'>Kafka</b> 集群部署實踐與性能優化

    docker 部署 kafka 及 ui 搭建

    建站、開發??測試環境、游戲服務器、音視頻服務等中低負載場景。 1.2 什么是 kafka 原文鏈接:https
    的頭像 發表于 01-03 09:30 ?158次閱讀
    docker 部署 <b class='flag-5'>kafka</b> 及 ui 搭建

    企業如何用ELK技術棧實現數據流量爆炸式增長

    ELK簡介 什么是ELK 通俗來講,ELK 是由 Elasticsearch、Logstash、Kibana 三個開源軟件的組成的一個組合體,ELK 是 elastic 公司研發的一套
    的頭像 發表于 12-19 11:38 ?200次閱讀
    企業如何用<b class='flag-5'>ELK</b>技術棧實現數據流量爆炸式增長

    超詳細“零”基礎kafka入門篇

    1、認識kafka 1.1 kafka簡介 Kafka?是一個分布式流媒體平臺 kafka官網:http://kafka.apache.or
    的頭像 發表于 12-18 09:50 ?948次閱讀
    超詳細“零”基礎<b class='flag-5'>kafka</b>入門篇

    ClickHouse:強大的數據分析引擎

    作者:京東物流 陳昌浩 最近的工作中接觸到CK,一開始還不知道CK是什么,通過查詢才知道CK是ClickHouseClickHouse 是俄羅斯的Yandex于2016年開源的列式存儲數據庫
    的頭像 發表于 12-10 10:23 ?143次閱讀
    <b class='flag-5'>ClickHouse</b>:強大的數據分析引擎

    Kafka高性能背后的技術原理

    Kafka 是一款性能非常優秀的消息隊列,每秒處理的消息體量可以達到千萬級別。
    的頭像 發表于 10-23 09:37 ?422次閱讀
    <b class='flag-5'>Kafka</b>高性能背后的技術原理

    OPA657怎么仿真才是真的?

    看著OPA的說明書跟這仿真,說明書上寫著帶寬可達到5MHz。可是我這樣測,1M的帶寬都沒有。想得到光電二極管放大電路的頻譜,想問下怎么仿真才是對的??
    發表于 09-06 06:48

    THS4521可以替代AD8138嗎?

    THS4521可以替代AD8138嘛?看是否替代主要看什么參數
    發表于 08-05 08:18

    供應鏈場景使用ClickHouse最佳實踐

    關于ClickHouse的基礎概念這里就不做太多的贅述了,ClickHouse官網都有很詳細說明。結合供應鏈數字化團隊在使用ClickHouse時總結出的一些注意事項,尤其在命名方面要求研發嚴格遵守
    的頭像 發表于 07-18 15:05 ?334次閱讀
    供應鏈場景使用<b class='flag-5'>ClickHouse</b>最佳實踐

    ClickHouse內幕(3)基于索引的查詢優化

    ClickHouse索引采用唯一聚簇索引的方式,即Part內數據按照order by keys有序,在整個查詢計劃中,如果算子能夠有效利用輸入數據的有序性,對算子的執行性能將有巨大的提升。本文討論
    的頭像 發表于 06-11 10:46 ?1081次閱讀
    <b class='flag-5'>ClickHouse</b>內幕(3)基于索引的查詢優化

    光電耦合元件國產替代:現狀與前景

    光電耦合元件作為一種關鍵的電子元器件,在各種電氣設備和系統中發揮著重要作用。然而,對于很多國家來說,依賴進口的情況依然存在。因此,對光電耦合元件的國產替代具有重要意義。本文將從現狀和前景兩個方面分析光電耦合元件的國產替代情況。
    的頭像 發表于 05-17 16:19 ?508次閱讀

    面試官:Kafka會丟消息嗎?

    許多開發人員普遍認為,Kafka 的設計本身就能保證不會丟失消息。然而,Kafka 架構和配置的細微差別會導致消息的丟失。我們需要了解它如何以及何時可能丟失消息,并防止此類情況的發生。
    的頭像 發表于 04-29 17:32 ?1078次閱讀
    面試官:<b class='flag-5'>Kafka</b>會丟消息嗎?

    貼片電感替代工字電感的應用案例分享

    之前有一個關于貼片電感能否替代工字電感的問題,本篇就給大家分享一個谷景技術部門正在做的一個貼片電感替代工字電感的案例。 這是我們技術部正在做的一個項目案例,詳細的替代方案已經確認,并且已經送樣給客戶
    的頭像 發表于 03-07 10:28 ?631次閱讀

    Rust編寫的首個Postgres基礎Elasticsearch開源替代品問世

    PostgreSQL 的生態確實越來越繁榮了,在基于 PG 的擴展與衍生中,我們已經有了基于 MongoDB 開源替代 —— FerretDB,SQL Server 開源替代 Babelfish
    的頭像 發表于 02-22 11:34 ?947次閱讀
    Rust編寫的首個Postgres基礎Elasticsearch開源<b class='flag-5'>替代</b>品問世

    Redis流與Kafka相比如何?

    我們先來看看Kafka的基本架構。基本的數據結構是主題。它是一個按時間排序的記錄序列,只需追加。使用這種數據結構的好處在Jay Kreps的經典博文The Log中得到了很好的描述。
    的頭像 發表于 02-21 16:09 ?512次閱讀
    Redis流與<b class='flag-5'>Kafka</b>相比如何?
    真钱百家乐注册送| 网上百家乐有没有假| 平凉市| 百家乐真人百家乐皇冠| 金花百家乐官网的玩法技巧和规则| 网上赌钱| 太阳城88娱乐城| 百家乐如何睇路| 百家乐官网群sun811.com| 盛世国际娱乐城| 女优百家乐的玩法技巧和规则 | 赌博| 大发888扑克下载| 狮威百家乐娱乐场| 澳门百家乐网址| 全景网百家乐官网的玩法技巧和规则| 百家乐官网视频聊天软件| 同城乐| 大发888论坛爱好| 利博百家乐的玩法技巧和规则| 百家乐官网导航| 无锡百家乐官网的玩法技巧和规则 | 粤港澳百家乐赌场娱乐网规则 | 澳门百家乐官网必赢技巧| 百家乐官网的路怎样看| 皇冠现金| 百利宫娱乐城官方网| 大发888娱乐城六合彩| 喜洋洋水果机遥控器| 威尼斯人娱乐城送彩金| 澳门百家乐职业| 百家乐网站东方果博| 平博百家乐游戏| 百家乐真人荷官| 百家乐庄闲多少| 正品百家乐官网的玩法技巧和规则 | 赌场| 连江县| 百家乐官网怎么玩啊| 老牌百家乐官网娱乐城| E乐博百家乐官网现金网|