There isn't a built in way in buildall to statically link the Kudu client,
and I'm not aware of any way to do it.

We don't provide any guarantees or do any testing around compatibility of
Impala with Kudu clients of different versions other than the versions that
correspond, i.e. the value of IMPALA_KUDU_VERSION for the branch of Impala
that you want to run. If you upgraded Impala but were dynamically linking
against an older version of the Kudu client that may have been what caused
the crash.

And Todd is right as well that you'll need to use a libkudu that was built
with Impala's toolchain, either by building the native-toolchain project
yourself, or by downloading the pre-built toolchain with
bin/bootstrap-toolchain.py, which will automatically grab the right libkudu
version for the branch of Impala that you're building.

On Tue, May 22, 2018 at 10:14 PM Todd Lipcon <t...@cloudera.com> wrote:

> Hi Quanlong,
>
> I think the comment you found must be out of date. I think Thomas may know
> the latest state of how the Kudu client is built as part of
> "native-toolchain".
>
> One thing to note is that, since Impala builds with its own toolchain, you
> need to make sure that it dynamic-links against the libkudu_client that
> comes from the toolchain. If you end up linking against one built using
> your system toolchain there is a chance that you'll get ABI mismatches and
> strange crashes. Perhaps that's what you saw when you first tried.
>
> -Todd
>
> On Tue, May 22, 2018 at 3:21 PM, Quanlong Huang <huang_quanl...@126.com>
> wrote:
>
>> Hi all,
>>
>>
>> Recently when I tried to upgrade our Impala cluster in CDH5.7.1 to
>> Impala-2.12, impalad crashed when inserting data to kudu tables. However,
>> it works when reading from kudu tables.
>> Finally, I found out that the kudu client
>> (/usr/lib/x86_64-linux-gnu/libkudu_client.so.0) is still linked
>> dynamically. Issues are resolved after I update libkudu_client.so.0.
>>
>>
>> In kudu-table-sink.cc, the comments said the kudu-client can be linked
>> statically:
>> https://github.com/apache/impala/blob/2.12.0/be/src/exec/kudu-table-sink.cc#L151
>> However, when building with -static in ./buildall.sh, the kudu-client is
>> still linked dynamically (see `ldd be/build/latest/service/impalad`). Is
>> there a build option to link it statically?
>>
>
>>
>> Thanks,
>> Quanlong
>
>
>
>
> --
> Todd Lipcon
> Software Engineer, Cloudera
>

Reply via email to