【streamx】streamx获取kafka数据写入hive

伴随着实时化浪潮的发展和深化,Flink 已逐步演进为实时流处理的领军技术和事实标准,流批一体的思路逐步推进架构改造和应用场景落地。公司实时计算业务也随着蓬勃发展。

StreamX 是Flink & Spark极速开发脚手架,流批一体一站式大数据平台,可以降低学习成本与开发难度,大大简化了Flink任务的日常操作和维护工作。
# 一、版本
stramx:1.2.3
scala: 2.11.8
hive : 2.1.1
kafka: 0.10.1

# 二、代码
## 1.kafka source
CREATE TABLE user_log (
user_id VARCHAR,
item_id bigint,
category_id bigint
) WITH (
'connector' = 'kafka',
'topic' = 'testly',
'properties.bootstrap.servers' = 'localhost:8090',
'properties.group.id' = 'testGroup',
'scan.startup.mode' = 'latest-offset',
'format' = 'json'
);

## 2. hive sink

CREATE CATALOG myhive WITH (
'type' = 'hive',
'default-database' = 'ods',
'hive-version' = '2.1.1',
'hive-conf-dir' = '/etc/hive/conf'
);

## 3. 逻辑写入
insert into
myhive.ods.pvuv_sink
SELECT
user_id, item_id,category_id
FROM user_log ;

## 4. 测试数据
{"user_id": "锤锤1", "item_id": 1715, "category_id": 1464116 }
{"user_id": "强强2", "item_id":2244074,"category_id":1575621 }
{"user_id": "豆豆3", "item_id":2244074,"category_id":1575622 }
{"user_id": "锤锤4", "item_id":2244074,"category_id":1575623 }
{"user_id": "强强5", "item_id": 1715, "category_id": 1464116 }


## 5. Streamx FlinkSql 配置

Flink Version: 1.13.0
UpLoadJar: flink-table-blink_2.11-1.13.0.jar
Dynamic Option: -Dexecution.checkpointing.interval=10000


# 总结
hive 元数据不匹配问题: 逻辑写入sql 一定是 catalogName.databaseName.tableName
hive 数据查询不到结果: hive 写入文件状态查看是否是 inprocessing 状态, 可能是没有开启checkpoint导致文件句柄没有关闭,无法生产success状态。

posted on 2022-05-19 11:14  linuxSu  阅读(225)  评论(0编辑  收藏  举报

导航