本人操作系统Mac OS M1 Pro,ARM64,之前在Windows、Ubuntu操作系统都部署过,步骤没有大的区别。
一、Flink安装
安装
方式一:直接使用brew install 下载安装
brew install apache-flink
更换至指定flink版本:
网页下载指定flink jar,将jar放到FLINK_HOME/libexec/目录下:
Apache Flink: Downloads
cd flink-1.17.2/
cp -r ./* /usr/local/Cellar/apache-flink/1.20.0/libexec/
方式二:网页下载
如上链接,下载后,可以直接从flink-home/bin 目录下开始启动。
启动FlinkSQL
- 启动cluster
以下两种方式都可以:
./opt/homebrew/Cellar/apache-flink/1.20.0/libexec/bin/start-cluster.sh
cd /Users/xxx/bigdata_env/flink-1.17.2/bin/
./start-cluster.sh
- 启动FlinkSQL:
cd /Users/bytedance/bigdata_env/flink-1.17.2/bin/
./sql-client.sh
参考文章:
- https://blog.csdn.net/zuoliansheng/article/details/126145690
- https://zhuanlan.zhihu.com/p/394883742
- https://mixboot.blog.csdn.net/article/details/80933831?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-80933831-blog-126145690.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-80933831-blog-126145690.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=6
二、Paimon安装
安装
从Paimon官网下载对应Flink版本的jar,然后放到Flink安装目录中的「lib」下:
Download | Apache Paimon
cp paimon-flink-1.17-0.8.2.jar /User/xxx/bigdata_env/flink-1.17.2/libexec/lib/
添加hadoop依赖「重要」
Paimon官方教程链接:Quick Start | Apache Paimon
Download Pre-bundled Hadoop jar and copy the jar file to the
lib
directory of your Flink home.
下载地址:https://repo1.maven.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/
cp flink-shaded-hadoop-2-uber-*.jar <FLINK_HOME>/lib/
否则会出现error:
启动测试
启动上述FlinkSQL
cd /Users/xxx/bigdata_env/flink-1.17.2/bin/
./start-cluster.sh
./sql-client.sh
创建catalog:
CREATE CATALOG my_catalog WITH (
'type'='paimon',
'warehouse'='file:/Users/xxx/bigdata_env/paimon_path'
);
SHOW CATALOGS;
USE CATALOG my_catalog;
创建database & paimon表:
CREATE DATABASE test_paimon_db;
show databases;
use test_paimon_db;
CREATE TABLE word_count (
word STRING PRIMARY KEY NOT ENFORCED,
cnt BIGINT
);
show tables;
流写Paimon表
SET 'execution.runtime-mode' = 'streaming'; -- !!!
CREATE TEMPORARY TABLE word_table (
word STRING
) WITH (
'connector' = 'datagen',
'fields.word.length' = '1'
);
SET 'execution.checkpointing.interval' = '10 s';
INSERT INTO word_count SELECT word, COUNT(*) FROM word_table GROUP BY word;
查看hdfs文件
ls /Users/xxx/bigdata_env/paimon_path/test_paimon_db.db/word_count/
OLAP查询Paimon
-- use tableau result mode
SET 'sql-client.execution.result-mode' = 'tableau';
-- switch to batch mode
RESET 'execution.checkpointing.interval';
SET 'execution.runtime-mode' = 'batch';
-- olap query the table
SELECT * FROM word_count;
可以同时跑多个Flink job:
In order to run multiple Flink jobs at the same time, you need to modify the cluster configuration in
<FLINK_HOME>/conf/flink-conf.yaml
.
taskmanager.numberOfTaskSlots: 4
参考文章:
- http://www.mfbz.cn/a/120009.html
- Quick Start | Apache Paimon
三、MySQL
安装
# brew info [email protected]
brew install [email protected]
brew tap homebrew/services
brew services start [email protected]
# brew services list
brew link [email protected] --force
mysqladmin -u root password 'yourpassword'
启动&测试
进入MySQL
mysql -u root -p
建库/建表/查询
-- 建库
create database my_test_db;
show databases;
use my_test_db;
-- 建表
create table word_table (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键自增id',
`word` varchar(20),
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='测试word表';
show tables;
-- 插入数据&查询
INSERT INTO word_table (word) VALUES ('flink'), ('hadoop'), ('mysql'), ('paimon'), ('doris'), ('flink');
select * from word_table;
参考文章:
安装:
- https://www.cnblogs.com/hanease/p/16926301.html
- https://blog.csdn.net/weixin_50776420/article/details/140287337
安装步骤:
四、Docker
mac 电脑安装 docker
在Mac上安装Docker,您可以使用Docker Desktop for Mac,它提供了一个简化的安装过程。以下是安装步骤:
- 访问Docker官方网站下载页面:Docker Desktop: The #1 Containerization Tool for Developers | Docker
- 点击对应的Mac版本(通常是Intel芯片或Apple Silicon)的"Download"按钮。
- 下载完成后,打开安装程序。
- 安装程序会自动启动,并引导您完成安装过程。
- 安装完成后,启动Docker Desktop。
- 首次启动时,Docker可能会要求您授予访问网络和文件的权限。
- Docker Desktop启动后,您可以通过命令行使用Docker CLI。
命令行示例(打开终端,输入以下命令):
检查Docker版本
docker --version
启动Docker服务
# docker start
停止Docker服务
# docker stop
查看Docker运行状态
docker system info
确保您的Mac操作系统版本支持Docker Desktop。如果您使用的是旧版本的Mac,可能需要升级操作系统或使用Docker Toolbox。
五、StarRocks
starrocks在mac电脑不太容易部署,be中的二进制文件与操作系统不匹配,故使用docker来进行安装部署(docker虚拟化一个环境/容器,可以实现跨平台的部署和运行,不需要每台机器都配置环境变量等)。
比如在mac运行启动Doris BE会出现:
doris_be: cannot execute binary file
安装
docker版本:
https://docs.starrocks.io/docs/quick_start/shared-nothing/ (官方)
# docker pull starrocks image
docker pull starrocks/allin1-ubuntu:3.2.11
# 通过docker启动starrocks -- 参考官方:https://docs.starrocks.io/docs/quick_start/shared-nothing/
docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd --name quickstart starrocks/allin1-ubuntu:3.2.11
-- 挂载容器外部磁盘/文件夹「启动」
docker run -v /Users/xxx/bigdata_env/docker_path/data:/home/zzz/data -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd --name quickstart starrocks/allin1-ubuntu:3.2.11
启动&测试
启动
# 启动SQL client(Connect to StarRocks with a SQL client)
docker exec -it quickstart \
mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > "
# 查看fe、be状态
show proc '/frontends' \G
show proc '/backends' \G
测试
CREATE DATABASE IF NOT EXISTS quickstart;
USE quickstart;
-- 3.4.1明细模型
-- (1)建表,在建表时指定模型和排序键
CREATE TABLE IF NOT EXISTS detail (
event_time DATETIME NOT NULL COMMENT "datetime of event",
event_type INT NOT NULL COMMENT "type of event",
user_id INT COMMENT "id of user",
device_code INT COMMENT "device of ",
channel INT COMMENT "")
DUPLICATE KEY(event_time, event_type)
DISTRIBUTED BY HASH(user_id) BUCKETS 8;
-- 插入数据
INSERT INTO detail VALUES('2021-11-18 12:00:00.00',1,1001,1,1);
INSERT INTO detail VALUES('2021-11-17 12:00:00.00',2,1001,1,1);
INSERT INTO detail VALUES('2021-11-16 12:00:00.00',3,1001,1,1);
INSERT INTO detail VALUES('2021-11-15 12:00:00.00',1,1001,1,1);
INSERT INTO detail VALUES('2021-11-14 12:00:00.00',2,1001,1,1);
-- 查数
SELECT * FROM detail;
六、StarRocks + Paimon测试
StarRocks启动
docker挂载磁盘/文件目录(容器内外互通)
# 挂载启动docker 镜像
docker run -v /Users/bytedance/bigdata_env/docker_path/data:/home/lyk/data -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd --name quickstart starrocks/allin1-ubuntu:3.2.11
# docker启动MySQL
docker exec -it quickstart \
mysql -P 9030 -h 127.0.0.1 -u root --prompt="StarRocks > "
或者启动前将文件copy到容器中:
由于容器内外的文件系统「不互通」,所以需要挂载或者copy文件夹到docker容器中去!!!
# cp外部文件到容器内
docker cp ~/bigdata_env/paimon_path quickstart:/home/zzz/data/
创建Paimon Catalog&查询
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "file:/home/zzz/data/paimon_path/"
);
SELECT * FROM paimon_catalog.test_paimon_db.word_count;
SELECT * FROM paimon_catalog.test_paimon_db.paimon_tbl_partial_updates_test2;
————
下一篇文章介绍,“Flink + Paimon + StarRocks/Doris 实现实时湖仓数据分析”,包含一些实操和性能的对比。
版权归原作者 Leonardo_KY 所有, 如有侵权,请联系我们删除。