0


Flink+Paimon+Hadoop+StarRocks(Doris)单机环境安装部署

本人操作系统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

  1. 启动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
  1. 启动FlinkSQL:
cd /Users/bytedance/bigdata_env/flink-1.17.2/bin/
./sql-client.sh

参考文章:

二、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

参考文章:

三、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;

参考文章:

安装:

安装步骤:

四、Docker

mac 电脑安装 docker

在Mac上安装Docker,您可以使用Docker Desktop for Mac,它提供了一个简化的安装过程。以下是安装步骤:

  1. 访问Docker官方网站下载页面:Docker Desktop: The #1 Containerization Tool for Developers | Docker
  2. 点击对应的Mac版本(通常是Intel芯片或Apple Silicon)的"Download"按钮。
  3. 下载完成后,打开安装程序。
  4. 安装程序会自动启动,并引导您完成安装过程。
  5. 安装完成后,启动Docker Desktop。
  6. 首次启动时,Docker可能会要求您授予访问网络和文件的权限。
  7. 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 实现实时湖仓数据分析”,包含一些实操和性能的对比。

标签: flink 大数据

本文转载自: https://blog.csdn.net/LutherK/article/details/143094224
版权归原作者 Leonardo_KY 所有, 如有侵权,请联系我们删除。

“Flink+Paimon+Hadoop+StarRocks(Doris)单机环境安装部署”的评论:

还没有评论