Skip to content

手把手教你在华为云编译和使用Apache Kudu

手把手教你在华为云编译和使用Apache Kudu

图片来源于网络

【摘要】大数据系统又重又复杂,对于很多感兴趣、又想玩一把的同学来讲,门槛着实有点高,今天我选择了Apache Kudu这个项目,来手把手指导大家从源码开始构建一个本地的集群,然后进行简单的数据读写和集群管理。

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

相关推荐: 跨境直播带货这么火,2022年会成为外贸增长的新渠道吗?

自疫情暴发以来,线下参展、出国拜访客户等开发海外买家的传统方式按下了暂停键,给国内不少外贸企业尤其是中小型企业,造成了严重打击。 与此同时,不少外贸人发现,线上平台已经成为了品牌出海营销的新蓝海。最近几年,不仅是我们所熟知的国内直播带货行业发展得如火如荼,各大…

    码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.

    电子商务网站建设的重要性和好处