Spark本地调试遇到的 CheckPoint 序列化问题和org.apache.hadoop.nativeio.NativeIO$windows.createFilewithMode0

第一个问题

Dstream checkpointing has been enabled but the Dstreams with their functions are not serializable

原因是创建JSSC的函数 使用到 set参数,不能使用原生的 map.keyset因为不支持序列化

    通过spark消费kafka 并且元数据通过checkpoint保存

  Function0<JavaStreamingContext>  createContextFunc= () -> createContext(conf);
  JavaStreamingContext jssc = CommonUtil.getJavaStreamingContext(
                ConfigurationManager.getProperty("spark.CheckPointPath"), createContextFunc);

问题是 创建函数里用到了通过读取redis保存的topic-partition map信息  直接使用的map.keyset   但是map.keyset是不可序列化的

解决办法

new HashSet<>(map.keyset())

 

第二个问题

org.apache.hadoop.nativeio.NativeIO$windows.createFilewithMode0

解决 

解决方案 移除 hadoop.dll

参考:

https://stackoverflow.com/questions/51680277/java-lang-unsatisfiedlinkerror-org-apache-hadoop-io-nativeio-nativeiowindows-c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值