we would cut it from the hadoop dependencies, but still allow IPC messages
using it to be marshalled if the protoc-compiled classes were using the
protobuf-2.5 JAR *and* that JAR was on the classpath.

it'd be come the homework of those apps which need protobuf-2.5, here
hbase, to set things up.



On Sat, 27 May 2023 at 14:39, 张铎(Duo Zhang) <palomino...@gmail.com> wrote:

> For hbase, the problem is we rely on protobuf 2.5 for our coprocessors.
>
> See HBASE-27436.
>
> Cheng Pan <pan3...@gmail.com> 于2023年5月24日周三 10:00写道:
>
>> +CC dev@hbase
>>
>> Thanks,
>> Cheng Pan
>>
>> On Fri, May 19, 2023 at 4:08 AM Steve Loughran
>> <ste...@cloudera.com.invalid> wrote:
>> >
>> >
>> >
>> > On Thu, 18 May 2023 at 03:45, Cheng Pan <cheng...@apache.org> wrote:
>> >>
>> >> Steve, thanks for the information, I think HADOOP-17046 should be fine
>> for the Spark case.
>> >>
>> >> Hadoop put the protobuf 3 into the pre-shaded hadoop-thirdparty, and
>> the hadoop-client-runtime shades protobuf 2 during the package, which
>> results in protobuf 2 and 3 co-exist in hadoop-client-runtime in different
>> packages:
>> >>
>> >> - protobuf 2: org.apache.hadoop.shaded.com.google.protobuf
>> >> - protobuf 3: org.apache.hadoop.thirdparty.protobuf
>> >
>> > j
>> > oh, so in fact that "put it back in unshaded" change doesn't do
>> anything useful through the hadoop-client lib. so it is very much useless.
>> >>
>> >>
>> >> As HADOOP-18487 plans to mark the protobuf 2 optional, will this make
>> hadoop-client-runtime does not ship protobuf 2? If yes, things become worse
>> for downstream projects who consumes hadoop shaded client, like Spark,
>> because it requires the user to add vanilla protobuf 2 jar into the
>> classpath if they want to access those API.
>> >
>> >
>> > Well, what applications are using  
>> > org.apache.hadoop.shaded.com.google.protobuf
>> ? hadoop itself doesn't; it's only referenced in unshaded form because
>> hbase wanted the IPC library to still work with the unshaded version they
>> were still using. But if the parquet2 lib is now only available shaded,
>> their protobuf compiled .class files aren't going to link to it, are they?
>> >
>> > does anyone know how spark + hbase + hadoop-client-runtime work so that
>> spark can talk to an hbase server? especially: what is needed on the
>> classpath, and what gets loaded for a call
>> >>
>> >>
>> >> In summary, I think the current state is fine. But for security
>> purposes, the Hadoop community may want to remove the EOL protobuf 2
>> classes from hadoop-client-runtime.
>> >
>> >
>> >  +1. the shaded one which is in use also needs upgrading.
>> >
>> >>
>> >> Thanks,
>> >> Cheng Pan
>> >>
>> >>
>> >> On May 17, 2023 at 04:10:43, Dongjoon Hyun <dongj...@apache.org>
>> wrote:
>> >>>
>> >>> Thank you for sharing, Steve.
>> >>>
>> >>> Dongjoon
>> >>>
>> >>> On Tue, May 16, 2023 at 11:44 AM Steve Loughran
>> <ste...@cloudera.com.invalid> wrote:
>> >>>>
>> >>>> I have some bad news here which is even though hadoop cut protobuf
>> 2.5 support, hbase team put it back in (HADOOP-17046). I don't know if the
>> shaded hadoop client has removed that dependency on protobuf 2.5.
>> >>>>
>> >>>> In HADOOP-18487 i want to allow hadoop to cut that dependency, with
>> hbase having to add it to the classpath if they still want it:
>> >>>> https://github.com/apache/hadoop/pull/4996
>> >>>>
>> >>>> It's been neglected -if you can help with review/test etc that'd be
>> great. I'd love to get this into the 3.3.6 release.
>> >>>>
>> >>>> On Sat, 13 May 2023 at 08:36, Cheng Pan <cheng...@apache.org> wrote:
>> >>>>>
>> >>>>> Hi all,
>> >>>>>
>> >>>>> In SPARK-42452 (apache/spark#41153 [1]), I’m trying to remove
>> protobuf 2.5.0 from the Spark dependencies.
>> >>>>>
>> >>>>> Spark does not use protobuf 2.5.0 directly, instead, it comes from
>> other dependencies, with the following changes, now, Spark does not require
>> protobuf 2.5.0.
>> >>>>>
>> >>>>> - SPARK-40323 upgraded ORC 1.8.0, which moved from protobuf 2.5.0
>> to a shaded protobuf 3
>> >>>>>
>> >>>>> - SPARK-33212 switched from Hadoop vanilla client to Hadoop shaded
>> client, also removed the protobuf 2 dependency. SPARK-42452 removed the
>> support for Hadoop 2.
>> >>>>>
>> >>>>> - SPARK-14421 shaded and relocated protobuf 2.6.1, which is
>> required by the kinesis client, into the kinesis assembly jar
>> >>>>>
>> >>>>> - Spark itself's core/connect/protobuf modules use protobuf 3, also
>> shaded and relocated all protobuf 3 deps.
>> >>>>>
>> >>>>> Feel free to comment if you still have any concerns.
>> >>>>>
>> >>>>> [1] https://github.com/apache/spark/pull/41153
>> >>>>>
>> >>>>> Thanks,
>> >>>>> Cheng Pan
>>
>

Reply via email to