【獎勵公示】第20期 2022年4月獎勵名單公示:社區明星評選 | 新人獎 | 博客同步 | 推薦獎
839
2025-03-31
1 前言
大數據系統又重又復雜,對于很多感興趣、又想玩一把的同學來講,門檻著實有點高,今天我選擇了Apache Kudu這個項目,來手把手指導大家從源碼開始構建一個本地的集群,然后進行簡單的數據讀寫和集群管理。
注意,以下操作只需要ctrl+c & ctrl+v 即可:)
2 準備工作
在開始本文之前,建議在華為云購買一臺云服務器,同時考慮到后續的順利操作,云服務器需要有一些要求:
CPU架構:x86計算
規格:c6.2xlarge.2(提高編譯速度)
鏡像:公共鏡像,CentOS CentOS 8.0 64bit
系統盤:高IO,100GB
彈性公網:按流量計費(提高下載速度)
3 操作系統
安裝軟件包
[root@ecs-kudu?~]#?yum?install?-y?git?autoconf?automake?libtool?flex?rsync?gcc-c++.x86_64?cyrus-sasl-devel.x86_64?cyrus-sasl-plain.x86_64?openssl-devel.x86_64?java-1.8.0-openjdk-devel.x86_64
創建軟連接
[root@ecs-kudu?~]#?cd?/usr/bin [root@ecs-kudu?bin]#?ln?-s?python3?python [root@ecs-kudu?bin]#?ls?-lrt?python* lrwxrwxrwx?1?root?root????32?Nov?21??2019?python3.6m?->?/usr/libexec/platform-python3.6m lrwxrwxrwx?1?root?root????31?Nov?21??2019?python3.6?->?/usr/libexec/platform-python3.6 lrwxrwxrwx?1?root?root????25?Feb?12??10:34?python3?->?/etc/alternatives/python3 lrwxrwxrwx?1?root?root????7?Jun??8??19:05?python?->?python3
4 編譯源碼
clone代碼:
[root@ecs-kudu?~]#?git?clone?https://github.com/apache/kudu
編譯三方包
[root@ecs-kudu?~]#?cd?kudu/ [root@ecs-kudu?kudu]#?./thirdparty/build-if-necessary.sh
編譯源碼
[root@ecs-kudu?kudu]#?mkdir?-p?build/release [root@ecs-kudu?kudu]#?cd?build/release/ [root@ecs-kudu?release]#?../../thirdparty/installed/common/bin/cmake?-DCMAKE_BUILD_TYPE=release?../.. [root@ecs-kudu?release]#?make?-j8
5 部署集群
這里我們以1個master + 3個tserver的集群進行舉例說明。
創建目錄
[root@ecs-kudu?release]#?cd?~/kudu [root@ecs-kudu?kudu]#? mkdir?-p?cluster/master/wal mkdir?-p?cluster/master/data mkdir?-p?cluster/master/conf mkdir?-p?cluster/master/log mkdir?-p?cluster/tserver1/wal mkdir?-p?cluster/tserver1/data mkdir?-p?cluster/tserver1/conf mkdir?-p?cluster/tserver1/log mkdir?-p?cluster/tserver2/wal mkdir?-p?cluster/tserver2/data mkdir?-p?cluster/tserver2/conf mkdir?-p?cluster/tserver2/log mkdir?-p?cluster/tserver3/wal mkdir?-p?cluster/tserver3/data mkdir?-p?cluster/tserver3/conf mkdir?-p?cluster/tserver3/log
配置文件
master節點配置
[root@ecs-kudu?kudu]#?cd?cluster [root@ecs-kudu?cluster]#?vi?master/conf/master.conf -rpc_bind_addresses=localhost:7051 -webserver_interface=localhost -webserver_port=8051 -fs_wal_dir=/root/kudu/cluster/master/wal -fs_data_dirs=/root/kudu/cluster/master/data -log_dir=/root/kudu/cluster/master/log -unlock_unsafe_flags -never_fsync -time_source=system_unsync
tserver1節點配置
[root@ecs-kudu?cluster]#?vi?tserver1/conf/tserver.conf -rpc_bind_addresses=localhost:7150 -webserver_interface=localhost -webserver_port=8150 -fs_wal_dir=/root/kudu/cluster/tserver1/wal -fs_data_dirs=/root/kudu/cluster/tserver1/data -log_dir=/root/kudu/cluster/tserver1/log -unlock_unsafe_flags -never_fsync -time_source=system_unsync
tserver2節點配置
[root@ecs-kudu?cluster]#?vi?tserver2/conf/tserver.conf -rpc_bind_addresses=localhost:7250 -webserver_interface=localhost -webserver_port=8250 -fs_wal_dir=/root/kudu/cluster/tserver2/wal -fs_data_dirs=/root/kudu/cluster/tserver2/data -log_dir=/root/kudu/cluster/tserver2/log -unlock_unsafe_flags -never_fsync -time_source=system_unsync
tserver3節點配置
[root@ecs-kudu?cluster]#?vi?tserver3/conf/tserver.conf -rpc_bind_addresses=localhost:7350 -webserver_interface=localhost -webserver_port=8350 -fs_wal_dir=/root/kudu/cluster/tserver3/wal -fs_data_dirs=/root/kudu/cluster/tserver3/data -log_dir=/root/kudu/cluster/tserver3/log -unlock_unsafe_flags -never_fsync -time_source=system_unsync
啟動進程
[root@ecs-kudu?cluster]#? ../build/release/bin/kudu-master??--flagfile=./master/conf/master.conf?& ../build/release/bin/kudu-tserver?--flagfile=./tserver1/conf/tserver.conf?& ../build/release/bin/kudu-tserver?--flagfile=./tserver2/conf/tserver.conf?& ../build/release/bin/kudu-tserver?--flagfile=./tserver3/conf/tserver.conf?&
測試嘗鮮
"OK"表示集群的狀態正常:
[root@ecs-kudu?cluster]#?../build/release/bin/kudu?cluster?ksck?localhost:7051 ...?... OK [root@ecs-kudu?cluster]#
寫數據
[root@ecs-kudu?cluster]#?../build/release/bin/kudu?perf?loadgen?localhost:7051?-table_num_hash_partitions=3?-table_num_replicas=3?-num_rows_per_thread=10000?-keep_auto_table Using?auto-created?table?'default.loadgen_auto_d1de323678bd4aa5a5dea618cbb8449c' INSERT?report ????rows?total:?20000 ????time?total:?35.4161?ms ??time?per?row:?0.0017708?ms [root@ecs-kud?cluster]#
讀數據(注意表名和上面的一樣)
[root@ecs-kudu?cluster]#?../build/release/bin/kudu?perf?table_scan?localhost:7051?default.loadgen_auto_d1de323678bd4aa5a5dea618cbb8449c T?988dc2eef4b84ed4a9f3f085f01407e1?scanned?count?6640?cost?0.00353404?seconds T?f1116c276f10455c8d58ff4720383542?scanned?count?6649?cost?0.00355792?seconds T?fb010f4e720d4e4293abcda44f51210a?scanned?count?6711?cost?0.00305647?seconds Total?count?20000?cost?0.0068044?seconds [root@ecs-kudu?cluster]#
上面是集群狀態和讀、寫集群的操作,通過kudu工具還可以做其他各種豐富的操作,大家可以參考https://kudu.apache.org/docs/command_line_tools_reference.html
以上step by step步驟有什么問題,請大家留言。另外,大家對Apache Kudu有什么想要了解的也可以留言哈^_^
大數據
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。