Thanks Attila

That’s great feedback and helpful for me to reference as guidance.

By “Kudu installation” I was referring to the possibility that an install might 
set config etc, beyond just having the binary. I got it running on CentOS 
similar to how you outline now.

I too believe mocking makes most sense, especially as we have the IT running as 
well, but was asked to explore this further. It’s useful to know you’d agree.

Thanks 

Tim

> On 29 Jun 2018, at 17:33, Attila Bukor <abu...@cloudera.com> wrote:
> 
> Hi Tim,
> 
> I’m not sure what you mean by relying on actual installations. If you have 
> the kudu, kudu-master and kudu-tserver binaries at the same location and they 
> can be executed, MiniKuduCluster can be used (“binDir” property should be set 
> to the directory containing the Kudu binaries). You should also look into 
> BaseKuduTest as that will set up the MiniKuduCluster for you and you don’t 
> have to do it manually.
> 
> Extracting the Kudu binaries from an rpm should probably work, but that binds 
> you to CDH as currently Cloudera is the only one that ships Kudu binaries and 
> MacOS builds are not available anywhere afaik. Also, 1.4.0 is around a year 
> old, you might want to use this repository instead (from CDH 5.13 Kudu is 
> part of the CDH): 
> http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5/RPMS/x86_64/kudu-1.7.0+cdh5.15.0+0-1.cdh5.15.0.p0.52.el7.x86_64.rpm
> 
> As a general suggestion, I would recommend mocking Kudu for unit tests 
> (that’s what a unit test is for after all) and create separate integration 
> tests that actually use Kudu that can be skipped where Kudu is not available. 
> Of course the CI should be set up to be able to provide all necessary 
> integrations for the tests, but a developer wouldn’t have to set up Kudu, or 
> use Docker to run the tests if their change doesn’t affect the Kudu 
> integration.
> 
> Attila
> 
>> On 2018. Jun 29., at 16:42, Tim Robertson <timrobertson...@gmail.com> wrote:
>> 
>> Hi folks,
>> 
>> I've written Java KuduIO for Apache Beam with integration tests making use
>> of Kudu in Docker.  It is yet to be committed on Apache Beam.
>> 
>> Rather than mocking Kudu client for unit tests I'd like to explore use of
>> the MiniKuduCluster which "Depends on precompiled kudu, kudu-master, and
>> kudu-tserver binaries".
>> 
>> I'd need unit tests to run on the main linux distros and OS X.
>> 
>> For the linux distros, would an approach where I extract the binaries from
>> the packages [1] work please? Or does the MiniKuduCluster rely on actual
>> installations? I am pretty weak on C builds and linked libraries etc (Java
>> guy, sorry).
>> 
>> For CentOS I'm exploring this for example:
>>  rpm2cpio ./kudu-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm | cpio
>> -idmv
>> 
>> I haven't explored OS X options yet.
>> 
>> Any advice here would greatly be appreciated to save me going down a dead
>> end.
>> 
>> Many thanks,
>> Tim
>> 
>> 
>> [1] http://kudu.apache.org/docs/installation.html#install_packages
> 
> 

Reply via email to