当前位置: 首页 > news >正文

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

目录

一、Flink安装

安装

方式一:直接使用brew install 下载安装

方式二:网页下载

启动FlinkSQL

二、Paimon安装

安装

添加hadoop依赖「重要」

启动测试

流写Paimon表

OLAP查询Paimon

三、MySQL

安装

启动&测试

四、Docker

五、StarRocks

安装

启动&测试

六、StarRocks + Paimon测试

StarRocks启动

创建Paimon Catalog&查询


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

2. 启动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 mysql@8.0
brew install mysql@8.0brew tap homebrew/services
brew services start mysql@8.0
# brew services list
brew link mysql@8.0 --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

安装步骤:

  • https://gist.github.com/robhrt7/392614486ce4421063b9dece4dfe6c21?permalink_comment_id=3694224

四、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 实现实时湖仓数据分析”,包含一些实操和性能的对比。


http://www.mrgr.cn/news/54791.html

相关文章:

  • 使用Matplotlib绘制极轴散点图
  • T3矩阵看功率
  • 【微信小程序_19_自定义组件(1)】
  • webstorm 编辑器配置及配置迁移
  • 网络基础知识:交换机关键知识解析
  • 大数据人工智能沙盘产品分享介绍
  • 黑马程序员Java笔记整理(day03)
  • JavaScript数据类型的转换
  • 【纯自用】roboflow的使用
  • PyTorch 中 torch 模块介绍
  • 关于建造者模式(Builder Pattern)
  • Hadoop 安装教程——单节点模式和分布式模式配置
  • Java项目-基于springboot框架的企业客户信息反馈系统项目实战(附源码+文档)
  • 人工智能中的深度学习模型:理论与代码实现
  • 第十六周:机器学习
  • 差分题目总和
  • 【电子通识】热敏打印头的结构类型和特点
  • 第十五届蓝桥杯Java大学b组(解)
  • 股票与基金资料收集
  • 二叉树的模拟实现—Java数据结构
  • 使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程
  • 字符串和集合的转换
  • Deformable DETR:结合多尺度特征、可变形卷积机制的DETR
  • Python画笔案例-089 绘制 三角圆图
  • 11.useComponentDidMount
  • STL-vector+题目