Skip to content

jhx1008/kudu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Requirements
------------------------------------------------------------
The following dependencies are necessary to build kudu:

- gcc 4.4 or higher
- boost 1.41 or higher including boost::thread
- cmake 2.8.7

Earlier versions of each of these may work, but have not recently
been tested.


Downloading thirdparty dependencies
------------------------------------------------------------

$ cd thirdparty/
$ ./download-thirdparty.sh


Building thirdparty dependencies
------------------------------------------------------------

$ cd thirdparty/
$ ./build-thirdparty.sh

This builds the thirdparty dependencies and installs them into
thirdparty/installed/

If you are looking to manually run the protobuf compiler, the pprof tool,
etc, you can find these in thirdparty/installed/bin/


Building kudu
------------------------------------------------------------

# Add ./thirdparty/installed/bin to your $PATH before other parts of 
# $PATH that may contain cmake, such as /usr/bin
$ cmake .
$ make -j4
$ make test


Running tests with the clang AddressSanitizer enabled
------------------------------------------------------------

AddressSanitizer is a nice clang feature which can detect many types of memory
errors. The Jenkins setup for kudu runs these tests automatically on a regular
basis, but if you make large changes it can be a good idea to run it locally
before pushing. To do so, you'll need a local install of clang.

$ rm -Rf CMakeCache.txt CMakeFiles/
$ CXX=/opt/bin/clang++ cmake -DKUDU_USE_ASAN=1 .   # or whatever your path to clang++
$ make -j
$ make test

The tests will run significantly slower than without ASAN enabled, and if any
memory error occurs, the test that triggered it will fail. You can then use a
command like:

$ src/tablet/failing-test 2>&1 | asan_symbolize.py | c++filt | less

to get a proper symbolized stack trace. The asan_symbolize program can be found
in the llvm source distribution:
https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_symbolize.py


For more information on AddressSanitizer, please see:
  http://clang.llvm.org/docs/AddressSanitizer.html

About

Mirror of Apache Kudu

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 79.8%
  • Java 10.9%
  • C 3.3%
  • Python 2.2%
  • CMake 1.3%
  • Protocol Buffer 1.2%
  • Other 1.3%