首页 > 其他分享 >apache flink + Paimon  快速搭建指南

apache flink + Paimon  快速搭建指南

时间:2024-08-31 12:25:08浏览次数:7  
标签:minio flink 1.18 repo etc apache org Paimon

Apache Paimon是一种湖格式,可以使用Flink和Spark构建实时湖屋架构,用于流式和批处理操作。Paimon创新性地将lake格式和LSM(日志结构合并树)结构相结合,将实时流式更新引入lake架构。

Paimon提供以下核心功能:

*实时更新:
*主键表支持写入大规模更新,具有很高的更新性能,通常通过Flink Streaming。
*支持定义合并引擎,以您喜欢的方式更新记录。重复数据删除以保留最后一行、部分更新、聚合记录或第一行,由您决定。
*支持定义变更日志生成器,为合并引擎生成正确完整的变更日志更新,简化您的流式分析。
*海量附加数据处理:
*附加表(无主键)提供大规模批处理和流处理能力。自动小文件合并。
*支持数据压缩和z顺序排序,以优化文件布局,使用minmax等索引提供基于数据跳过的快速查询。
*数据湖功能:
*可扩展元数据:支持存储Petabyte大规模数据集和存储大量分区。
*支持ACID事务、时间旅行和模式演化。

the environment includes:

  • minio
  • pamion
  • flink

Centos 更换 tencent 的yum源

备份系统旧配置文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

获取对应版本的CentOS-Base.repo 到/etc/yum.repos.d/目录

各版本源配置列表

CentOS7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
CentOS8
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos8_base.repo

更新缓存

yum clean all
yum makecache

Centos 安装Java环境(flink使用)

wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

mkdir /usr/local/java/
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java

echo "export JAVA_HOME=/usr/local/java/jdk1.8.0_202" >> /etc/profile
echo "export JRE_HOME=${JAVA_HOME}/jre" >> /etc/profile
echo "export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib" >> /etc/profile
echo "export PATH=${JAVA_HOME}/bin:$PATH" >> /etc/profile

source /etc/profile
ln -s /usr/local/java/jdk1.8.0_202/bin/java /usr/bin/java

java -version

install Minio

使用以下命令下载安装最新版本的稳定 MinIO二进制包, 并设置 $PATH:

wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

设置minio linux服务

sudo tee /etc/systemd/system/minio.service <<-'EOF'
[Unit]
Description=Minio Service

[Service]
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=password"
ExecStart=/usr/local/bin/minio server /mnt/minio --console-address ":9001"
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
StandardOutput=/mnt/minio/logs/minio.log
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

启动 minio linux服务

systemctl start minio
systemctl enable minio

手动 创建Buckets warehouse ,设置Access Policy: Public

download jdk filnk 1.18.1

wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.18.1/flink-1.18.1-bin-scala_2.12.tgz

tar zxvf flink-1.18.1-bin-scala_2.12.tgz -C /opt/

download dll ,copy to flink-1.18.1/lib folder

wget https://repo1.maven.org/maven2/org/apache/paimon/paimon-s3/0.8.0/paimon-s3-0.8.0.jar
wget https://repo1.maven.org/maven2/org/apache/paimon/paimon-flink-1.18/0.8.0/paimon-flink-1.18-0.8.0.jar
wget https://repo1.maven.org/maven2/org/apache/flink/flink-connector-jdbc/3.1.2-1.18/flink-connector-jdbc-3.1.2-1.18.jar
wget https://repo1.maven.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.8.3-10.0/flink-shaded-hadoop-2-uber-2.8.3-10.0.jar
wget https://repo1.maven.org/maven2/org/apache/flink/flink-s3-fs-hadoop/1.18.0/flink-s3-fs-hadoop-1.18.0.jar

cp ./*.jar /opt/flink-1.18.1/lib/

start flink

cd /opt/flink-1.18.1/

bash ./bin/start-cluster.sh

bash flink 客户端:

cd /opt/flink-1.18.1/

./bin/sql-client.sh embedded

创建 Iceberg Catalog 和表

```sql
-- if you're trying out Paimon in a distributed environment,
-- the warehouse path should be set to a shared file system, S3 minio
CREATE CATALOG my_catalog WITH (
    'type' = 'paimon',
    'warehouse' = 's3://warehouse/wh',
    's3.endpoint'='http://192.168.116.130:9000',
    's3.access-key' = 'admin',
    's3.secret-key' = 'password',
    's3.region' = 'us-east-1'
);

USE CATALOG my_catalog;

-- create a word count table
CREATE TABLE word_count (
    word STRING PRIMARY KEY NOT ENFORCED,
    cnt BIGINT
);

创建完表,可以登录 minio:9001地址进行查看数据文件;
插入数据

USE CATALOG my_catalog;
-- insert data into word count table
insert into word_count values ('hello',2);

后面, 根据你的业务创建 flink job任务,进行数据写入;

标签:minio,flink,1.18,repo,etc,apache,org,Paimon
From: https://www.cnblogs.com/lanfengqi/p/18390120

相关文章

  • Apache顶级项目ShardingSphere — SQL Parser的设计与实现
    导语:SQL作为现代计算机行业的数据处理事实标准,是目前最重要的数据处理接口之一,从传统的DBMS(如MySQL、Oracle),到主流的计算框架(如spark,flink)都提供了SQL的解析引擎,因此想对sql进行精细化的操作,一定离不开SQLParser。ApacheShardingSphere是一套开源的分布式数据库中间件解决方......
  • Apache顶级项目ShardingSphere — SQL Parser的设计与实现
    导语:SQL作为现代计算机行业的数据处理事实标准,是目前最重要的数据处理接口之一,从传统的DBMS(如MySQL、Oracle),到主流的计算框架(如spark,flink)都提供了SQL的解析引擎,因此想对sql进行精细化的操作,一定离不开SQLParser。ApacheShardingSphere是一套开源的分布式数据库中间件解决方案......
  • MyBatis启动报Cause: org.apache.ibatis.builder.BuilderException: Error resolving
    mybatis-plus:**#搜索指定包别名,对指定报名下的所有实体进行Alias,就可以在mapper.xml中使用alias来设置parameterType参数**typeAliasesPackage:com.rcs.**.domain**#配置mapper的扫描,找到所有的mapper.xml映射文件,对该目录下的所有mapper.xml进行扫描装入Mappers......
  • 招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
    在竞争激烈的消费金融市场中,有效利用海量数据、提升业务运营效率是赢得市场的关键。早期招联采用典型的Lambda架构提供业务报表、数据运营、个性推荐、风险控制等数据服务,而Lambda过多的技术栈也引发了数据孤岛、查询效率不足、代码复用性差以及开发运维成本高昂等诸多问题。因......
  • apache-log4cxx编译问题
    问题由于项目需要用到c++日志系统log4cxx,记录安装log4cxx库遇到的坑。环境准备系统ubuntu18.04gcc编译器7.5.0Linuxforlinx4.4.189aarch64GNU/Linux已知:log4cxx是一个依赖于apr和apr-util的C++日志库。apr是Apache提供的一个支持跨平台的运行时库。apr......
  • (十九)Flink CDC
    FlinkCDC(FlinkChangeDataCapture)是基于数据库的日志CDC技术,实现了全增量一体化读取的数据集成框架。搭配Flink计算框架,FlinkCDC可以高效实现海量数据的实时集成。目录CDC简介CDC模式CDC产品对比FlinkCDC简介FlinkCDC发展历程支持的Flink版本支......
  • Apache DolphinScheduler中处理任务/告警/事件相关核心思路曝光
    最近在看ApacheDolphineScheduler,发现DolphinScheduler在处理任务时,通过先将任务快速的存储在数据库中,然后基于对应的Task,将Task放入队列中,然后将Task进行快速消费的思路。这种模型在很多框架中,都有体现。我们知道在Master模块时处理任务的核心模块,而API模块主要是界面中操作......
  • Apache Kafka 简介、使用场景及特点
    ApacheKafka简介、使用场景及特点1.什么是ApacheKafka?ApacheKafka是一种开源的分布式流处理平台,最初由LinkedIn开发,并在2011年成为Apache软件基金会的顶级项目。Kafka专为高吞吐量、低延迟的实时数据处理设计,广泛应用于各种数据流处理场景。Kafka的核心组......
  • 兴业证券基于Apache DolphinScheduler的应用实践
    文/兴业证券股份有限公司 刘洋 石良生 柳君 李致琪本文来源于网络,如有侵权,请联系删除任务调度平台,扮演着自动执行预设任务的重要角色,是业务开展过程中不可或缺的一环。随着业务规模的不断扩展,兴业证券每日需要进行数以万计的任务调度,因此,优化和提升任务调度平台的性......
  • Apache RocketMQ 批处理模型演进之路
    作者:谷乂RocketMQ的目标,是致力于打造一个消息、事件、流一体的超融合处理平台。这意味着它需要满足各个场景下各式各样的要求,而批量处理则是流计算领域对于极致吞吐量要求的经典解法,这当然也意味着RocketMQ也有一套属于自己风格的批处理模型。至于什么样的批量模型才叫“属于......