前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用flink插入数据到hudi数据湖初探

使用flink插入数据到hudi数据湖初探

作者头像
从大数据到人工智能
发布2022-01-19 08:14:14
1.2K0
发布2022-01-19 08:14:14
举报
文章被收录于专栏:大数据-BigData

环境:

  • hadoop 3.2.0
  • flink 1.11.4-bin-scala_2.11
  • hudi 0.8.0

本文基于上述组件版本使用flink插入数据到hudi数据湖中。为了确保以下各步骤能够成功完成,请确保hadoop集群正常启动。

确保已经配置环境变量HADOOP_CLASSPATH

对于开源版本hadoop,HADOOP_CLASSPATH配置为:

代码语言:javascript
复制
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/client/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/tools/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/etc/hadoop/*

本文使用的hdfs为高可用集群,对应hdfs为:hdfs://mycluster

本地安装flink集群

flink下载

代码语言:javascript
复制
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.11.4/flink-1.11.4-bin-scala_2.11.tgz
tar zxvf flink-1.11.4-bin-scala_2.11.tgz

下载hudi相关jar包,需要下载hudi-flink-bundle_2.11-0.8.0.jar、commons-logging-1.2.jar、htrace-core-3.1.0-incubating.jar以及htrace-core4-4.1.0-incubating.jar这四个jar包到flink的lib目录下,其中

代码语言:javascript
复制
cd flink-1.11.4/lib
wget https://repo.maven.apache.org/maven2/org/apache/hudi/hudi-flink-bundle_2.11/0.8.0/hudi-flink-bundle_2.11-0.8.0.jar
wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
wget https://repo1.maven.org/maven2/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar
wget https://repo1.maven.org/maven2/org/apache/htrace/htrace-core4/4.1.0-incubating/htrace-core4-4.1.0-incubating.jar

修改配置文件

vi conf/workers,写入四个localhost

代码语言:javascript
复制
localhost
localhost
localhost
localhost

vi conf/flink-conf.yaml,修改taskmanager.numberOfTaskSlots的值为4

代码语言:javascript
复制
taskmanager.numberOfTaskSlots: 4

启动flink集群

代码语言:javascript
复制
bin/start-cluster.sh

启动flink-sql client

执行以下命令启动flink sql

代码语言:javascript
复制
./bin/sql-client.sh embedded -j ./lib/hudi-flink-bundle_2.11-0.8.0.jar shell

创建t1表

代码语言:javascript
复制
create table t1(
 uuid VARCHAR(20),
 name VARCHAR(20),
 age INT,
 ts TIMESTAMP(3),
 `partition` VARCHAR(20)
 )
 PARTITIONED BY (`partition`)
 WITH (
   'connector'='hudi',
   'path' = 'hdfs://mycluster/tmp/t1',
   'table.type' = 'MERGE_ON_READ'
 );

插入数据到t1表

代码语言:javascript
复制
 INSERT INTO t1 VALUES
   ('id1','Danny',23,TIMESTAMP '1970-01-01 00:00:01','par1'),
   ('id2','Stephen',33,TIMESTAMP '1970-01-01 00:00:02','par1'),
   ('id3','Julian',53,TIMESTAMP '1970-01-01 00:00:03','par2'),
   ('id4','Fabian',31,TIMESTAMP '1970-01-01 00:00:04','par2'),
   ('id5','Sophia',18,TIMESTAMP '1970-01-01 00:00:05','par3'),
   ('id6','Emma',20,TIMESTAMP '1970-01-01 00:00:06','par3'),
   ('id7','Bob',44,TIMESTAMP '1970-01-01 00:00:07','par4'),
   ('id8','Han',56,TIMESTAMP '1970-01-01 00:00:08','par4');

数据更新

代码语言:javascript
复制
insert into t1 values ('id1','Danny',27,TIMESTAMP '1970-01-01 00:00:01','par1');

数据查询

代码语言:javascript
复制
select * from t1 limit 10;

查询结果:

查看hdfs上对应表的分区

执行命令:

代码语言:javascript
复制
hdfs dfs -ls /tmp/t1

得到

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://cloud.tencent.com/developer/article/1936504

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境:
  • 本地安装flink集群
  • 启动flink-sql client
  • 查看hdfs上对应表的分区
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档