我工作的hadoop集群似乎部署了协议缓冲jar供自己使用。我想编写Pig脚本,通过UDF使用自己版本的协议缓冲区进行存储。我的UDF是否可以使用与底层hadoop系统不同版本的协议缓冲区?
对于上下文,编译的协议缓冲区代码不应在版本之间互换,即使有线格式也可以。所以我需要保证,如果我提供我的jar,我不会替换Hadoop内部工作的标准变体。此外,我发现我的群集上提供的协议缓冲区的标准版本与我提供的(已确认)已编译的消息不兼容。
问题在于我是否需要在群集和我的库代码之间始终使协议缓冲库的版本100%同步。这将引入紧密耦合和未来的维护问题。我很可能会切换到Thrift,而Thrift显然没有预先存在的群集依赖关系。