目录@H_502_2@
2、启动时出现missing parameter type错误
1、Hadoop相关
javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created
java.lang.RuntimeException: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created
出现这个异常,原因在于xml-apis包与dom4j包冲突,排除项目中所有xml-apis
<dependency>
<groupId>com.yidian.data.push.keep</groupId>
<artifactId>planner-core</artifactId>
<exclusions>
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
</exclusions>
</dependency>
2、启动时出现missing parameter type错误
检查 StreamExecutionEnvironment import是否正确
// java 的头是
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
// scala的头是:
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.api.scala.createType@R_163_4045@ion // scala需要引入
3、处理Protobuf对象
不同opeartor之间交换的数据包含Protobuf对象,需要注册,具体可参照Flink 官方文档 Data Types & Serialization
引入
<dependency>
<groupId>com.twitter</groupId>
<artifactId>chill-protobuf</artifactId>
<version>0.7.6</version>
</dependency>
通过StreamExecutionEnvironment对象显式注册pb类
import com.twitter.chill.protobuf.ProtobufSerializer
env.registerTypeWithKryoSerializer(classOf[StrategyInterface], classOf[ProtobufSerializer])
env.registerTypeWithKryoSerializer(classOf[PoolElement], classOf[ProtobufSerializer])
4、Flink-kafka Producer问题
默认Partitioner,如无特殊指定,默认使用 FlinkFixedPartitioner。
问题:在Flink并行度小于kafka topic分区数时,该Partitioner会引发“只能写入部分分区”的问题。
5、static关键字导致加载config为空问题
在分布式程序中,对象比如配置文件Config,不要用static做修饰,因为static关键字在类没有创建完成就能获取到Config对象,导致在加载Config的时候为空,举例如下:
public class HBaseSink extends RichSinkFunction<Pair<String, Optional<XX>>> {
private static final Logger logger = LoggerFactory.getLogger(HBaseSink.class);
// static Config config; 如果在程序中设置HBaseSink的并行度>1,config如果用static修饰,能获取到config对象,但是内容为空;
Config config;
}
6、序列化异常
不要用类似 ImmutableList 这类不可改变的数据结构作为算子间的传输对象,会报序列化异常
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。