本文为您介绍如何使用Datastream作业读取阿里云DataHub数据。
前提条件
- 本地安装了Java JDK 8。
- 本地安装了Maven 3.x。
- 本地安装了用于Java或Scala开发的IDE,推荐IntelliJ IDEA,且已配置完成JDK和Maven环境。
- 在DataHub上创建了Topic,并且Topic中存在测试数据。
说明 测试数据需要有4个字段,数据类型依次为STRING、STRING、DOUBLE和BIGINT。
- 已下载datahub-demo-master示例。
背景信息
注意 仅Blink3.x版本支持本示例。
开发
上线
请参见上线完成作业上线。
本示例对应的作业内容如下。
注意 作业上线前,请在开发页面右侧的资源配置页签,配置源表的并发数,源表并发数不能大于源表的Shard数,否则作业启动后JM(Job Manager)报错。
--完整主类名,必填,例如com.alibaba.realtimecompute.DatastreamExample。
blink.main.class=com.alibaba.blink.datastreaming.DatahubDemo
--作业名称。
blink.job.name=datahub_demo
--包含完整主类名的JAR包资源名称,多个JAR包时必填,例如blink_datastream.jar。
blink.main.jar=${完整主类名jar包的资源名称}
--默认statebackend配置,当作业代码没有显式配置时生效。
state.backend.type=niagara
state.backend.niagara.ttl.ms=129600000
--默认checkpoint配置,当作业代码没有显式配置时生效。
blink.checkpoint.interval.ms=180000
说明
- 注意修改blink.main.class和blink.job.name。
- 您可以设置自定义参数,详情请参见自定义参数。
验证
在运维页面,查看Sink节点的taskmanager.out信息,本示例中使用Print作为Sink。
如果出现如下结果,则表示已经成功读取了阿里云DataHub中的数据。

常见问题
在作业运行时,如果界面上出现如下类似的错误,表示存在JAR包冲突。java.lang.AbstractMethodError:com.alibaba.fastjson.support.jaxrs.FastJsonAutoDiscoverable.configure(Lcom/alibaba/blink/shaded/datahub/javax/ws/rs/core/FeatureContext;)

建议您使用maven-shade-plugin插件的Relocation功能,解决JAR包冲突的问题。
<relocations combine.self="override">
<relocation>
<pattern>org.glassfish.jersey</pattern>
<shadedPattern>com.alibaba.blink.shaded.datahub.org.glassfish.jersey</shadedPattern>
</relocation>
</relocations>
在文档使用中是否遇到以下问题
更多建议
匿名提交