Commit Graph

53 Commits

Author SHA1 Message Date
Martin Grund
5afd5bc8f6 Toolchain Cleanup and ASAN Improvements
This patch provides the last fixes to finally enable the toolchain:

     - Remove static OpenSSL dependency
     - Fixing inline assembly problems in ASAN
     - Issues with non-relocatable LLVM 3.3 - adds manual system
       includes to fix issues with hardcoded header paths in clang.

When the toolchain is enabled and we build for ASAN we use a specific
toolchain file to build with LLVM-trunk as the main compiler. Even
though this uses LLVM-trunk for compiling the Impala code, this will use
LLVM 3.3 for codegen.  In addition, this enables us to follow up with
TSAN and LEAKSAN.

Change-Id: I0abb914ca3f192cb7edd83ead134bc9e2d02071f
Reviewed-on: http://gerrit.cloudera.org:8080/556
Tested-by: Internal Jenkins
Reviewed-by: Martin Grund <mgrund@cloudera.com>
2015-08-21 20:14:31 +00:00
Martin Grund
a4f84b1b1a Making CMake modules more modular for non-toolchain build
This patch makes sure that the Impala-lzo build can pickup the
cmake modules from Impala to avoid code duplication on the lzo side.

Change-Id: I7917946724ce4bfaa281e708e9ea5799b4e2cd37
Reviewed-on: http://gerrit.cloudera.org:8080/552
Reviewed-by: Martin Grund <mgrund@cloudera.com>
Tested-by: Internal Jenkins
2015-07-22 02:01:34 +00:00
Martin Grund
384ae3ab08 Fixes for Toolchain Issues
If a static version of zlib and bzip2 is picked up we assumed that it
would be compiled with -fPIC. However, this is not always the case. Thus
in the non-toolchain case we specifically dynamic link with zlib and
bzip2 for the dynamic targets.

In addition, this patch removes static linking of libgcc in the
toolchain case as LLVM is not able to find the exception handling
symbols even if they are present in the binary. Static linking of libgcc
is postponed.

Next, if Impala is build with -notests the external data source thrift
files would not be generated. This patch make sure the dependencies are
expressed correctly.

Finally, if a user would have google perftools installed on the system
we would accidentally pick up the system libraries and the thirdparty
headers which will end in linker errors. This patch fixes the path
issues.

Change-Id: Ic000101c33da26d75a0cd733f7ef02f1bd694937
Reviewed-on: http://gerrit.cloudera.org:8080/460
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: Internal Jenkins
2015-06-15 23:14:32 +00:00
Martin Grund
81f247b171 Optional Impala Toolchain
This patch allows to optionally enable the new Impala binary
toolchain. For now there are now major version differences in the
toolchain dependencies and what is currently kept in thirdparty.

To enable the toolchain, export the variable IMPALA_TOOLCHAIN to the
folder where the binaries are available.

In addition this patch moves gutil from the thirdparty directory into
the source tree of be/src to allow easy propagation of compiler and
linker flags. Furthermore, the thrift-cpp target was added as a
dependency to all targets that require the generated thrift sources to
be available before the build is started.

What is the new toolchain: The goal of the toolchain is to homogenize
the build environment and to make sure that Impala is build nearly
identical on every platform. To achieve this, we limit the flexibility
of using the systems host libraries and rather rely on a set of custom
produced binaries including the necessary compiler.

Change-Id: If2dac920520e4a18be2a9a75b3184a5bd97a065b
Reviewed-on: http://gerrit.cloudera.org:8080/427
Reviewed-by: Adar Dembo <adar@cloudera.com>
Tested-by: Internal Jenkins
Reviewed-by: Martin Grund <mgrund@cloudera.com>
2015-06-13 03:11:44 +00:00
Nong Li
7da3d1a5c0 Fix sasl thirdparty build to work on all distros.
Our packaging jobs use ~ in the path containing IMPALA_HOME. Getting
sasl's 'make install' to work with ~ doesn't seem possible. Let's just
install it somewhere else.

Change-Id: Ie59a5a35609e7bff56e5684d34411b46f8ddcc0c
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4304
Reviewed-by: Henry Robinson <henry@cloudera.com>
Tested-by: jenkins
2014-09-12 15:13:14 -07:00
root
b8ad1d0296 Updates to build on ubuntu 14.04/boost 1.5*.
Change-Id: Idfbbe6f0dc4e0888f404b23bb4046b8132d27940
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4296
Reviewed-by: Lenni Kuff <lskuff@cloudera.com>
Tested-by: jenkins
2014-09-12 01:22:32 -07:00
Alex Behm
a1f504d18c Fix Ldap include path in cmake find module.
Change-Id: I877475e7f2b4888a712c3aef5bd207e35046afb1
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3865
Reviewed-by: Nong Li <nong@cloudera.com>
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: Alex Behm <alex.behm@cloudera.com>
2014-08-17 12:45:59 -07:00
Henry Robinson
446d1061c3 Small changes to thirdparty builds
* Move openldap to /impala_install to avoid conflict with INSTALL file
* Don't build Thrift support for languages we don't use

Change-Id: I260b3b4bdecc26b5525e5117a265add6638773c0
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3854
Reviewed-by: Lenni Kuff <lskuff@cloudera.com>
Tested-by: jenkins
2014-08-17 12:44:58 -07:00
Henry Robinson
4b8ca060b8 Add Mustache template library
The Mustache template library renders
Mustache (httP;//mustache.github.io) templates with Json contexts
produced by RapidJson.

Change-Id: I38fa33aea88bea7d19a2ee8cb548a50e3ca2f4a8
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/2196
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: jenkins
(cherry picked from commit f7a30054a180867bcb492444bbcb4fa2849c7b93)
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3648
Reviewed-by: Henry Robinson <henry@cloudera.com>
2014-07-29 17:24:45 -07:00
Henry Robinson
55a054e1b8 Small fixes for FindRapidJson.cmake
This tiny fix cleans up the FindRapidJson.cmake file, which wasn't
actually searching for the rapidjson.h header correctly but instead
assuming a particular location for it, making some of the other code in
the file redundant.

Change-Id: I5fe3c664b8a078b6610440a8ae4173f38d57a84b
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3631
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: jenkins
(cherry picked from commit 438d1512cc78899473d6684b9ca07a6a9b7b100a)
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3649
Tested-by: Henry Robinson <henry@cloudera.com>
Reviewed-by: Henry Robinson <henry@cloudera.com>
2014-07-29 17:20:55 -07:00
Paden Tomasello
0326f17bb3 Adding Lz4 Codec.
Change-Id: I037d4e0de3b2cd2b8582caea058c8e1f2f880ff3
Reviewed-on: http://gerrit.ent.cloudera.com:8080/3027
Reviewed-by: Paden Tomasello <paden.tomasello@cloudera.com>
Tested-by: jenkins
2014-06-16 14:20:34 -07:00
Nong Li
d816e0fc51 Add the multi precision int library from boost.
This library provides the exact API and functionality we need for decimals.
I've included a simple example of how the API is used. Still looking into
the perf but I don't think we can build something much faster as easily.

I've taken the latest version from boost 1.55 but I don't think we can
upgrade that in all of our supported platforms easily. Instead I've taken
this part of the library and put it in thirdparty.

Change-Id: Icf9879d546aa6a8bde046940fb91eb5060fb2f47
Reviewed-on: http://gerrit.ent.cloudera.com:8080/1691
Reviewed-by: Nong Li <nong@cloudera.com>
Tested-by: jenkins
Reviewed-on: http://gerrit.ent.cloudera.com:8080/1723
2014-03-02 20:57:49 -08:00
Henry Robinson
177b9ba3b1 Remove nonblocking server (and dependencies) from build
Goodnight, sweet non-blocking prince. We didn't support, or test, this
configuration, and it doesn't work with security or sessions and brings
in some annoying dependencies that are a pain to build.

We have other RPC-stack options to investigate; we may wind up re-adding
the non-blocking server but only in a way that supports all required
features more regularly.

Change-Id: Ifbcabc5014441f6d31c342c4e288dd7fc6201443
2014-01-08 10:54:35 -08:00
Henry Robinson
6d9a7e290d Build Openldap as a thirdparty package
Change-Id: Ifbb0f468a23186f4160fceb462953bc321469c27
Reviewed-on: http://gerrit.ent.cloudera.com:8080/1049
Reviewed-by: Henry Robinson <henry@cloudera.com>
Tested-by: Henry Robinson <henry@cloudera.com>
2014-01-08 10:54:20 -08:00
Skye Wanderman-Milne
b7f83bcd73 Add support for LLVM IR UDFs.
This patch also adds a number of improvements to NativeUdfExpr. Highlights include:

* Correctly handling the lowering of AnyVal struct types (required for ABI compatibility)
* A rudimentary library cache for reusing handles produced by dlopen
* More complicated test cases

Change-Id: Iab9acdd7d7c4308e5d7ee3210f21b033fda5a195
Reviewed-on: http://gerrit.ent.cloudera.com:8080/540
Tested-by: jenkins
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: Skye Wanderman-Milne <skye@cloudera.com>
2014-01-08 10:53:03 -08:00
Henry Robinson
dbed012396 Move from 'Mongoose' to 'Squeasel' webserver
We now maintain our own internal version of the Mongoose webserver,
renamed to 'Squeasel' for differentiation. This patch imports the new
code, and swaps all mentions of mongoose or mg_ for squeasel / sq_.

In the future, we might consider making Squeasel a git subproject so
that we can pull in changes more easily.

Change-Id: I83b595dc336a32f2c8aba59eee420b71274b681b
Reviewed-on: http://gerrit.ent.cloudera.com:8080/485
Tested-by: jenkins
Reviewed-by: Henry Robinson <henry@cloudera.com>
2014-01-08 10:52:55 -08:00
Lenni Kuff
e0876b951b Add support for audit event logging
This change adds support audit event logging in Impala. This feature is
disabled by default and is enabled by setting the -audit_event_log_dir
flag. When auditing is enabled, details on each query that Impala executes
will be saved to the audit log along with the current session state. This
includes information such as the statement type, catalog objects accessed
by the query, and whether there the operation passed authorization.

Change-Id: I39b78664c971124ec79c5fcee998065dd53fd32e
Reviewed-on: http://gerrit.ent.cloudera.com:8080/142
Reviewed-by: Lenni Kuff <lskuff@cloudera.com>
Tested-by: Lenni Kuff <lskuff@cloudera.com>
2014-01-08 10:52:08 -08:00
Nong Li
9af39ad4c4 Add check for llvm version in CMake. 2014-01-08 10:51:55 -08:00
Skye Wanderman-Milne
3fecdeb793 IMPALA-441: support default values for Avro tables 2014-01-08 10:51:39 -08:00
Skye Wanderman-Milne
e7ea89524b Upgrade Avro library to 1.7.4 2014-01-08 10:51:06 -08:00
Nong Li
f4fc37368f Switch from boost::regex to google RE2. 2014-01-08 10:50:16 -08:00
Sean Mackrory
05dd34a819 IMP-594: Impala binaries are embedding build-time locations of libraries 2014-01-08 10:48:25 -08:00
Sean Mackrory
b9d10cccbd Revert "IMP-594: Impala binaries are embedding build-time locations of libraries"
This reverts commit 748659845303b9a23ee36fc50f81aee0f1082cb9.
2014-01-08 10:48:25 -08:00
Sean Mackrory
f676b8ad1a IMP-594: Impala binaries are embedding build-time locations of libraries 2014-01-08 10:48:24 -08:00
Skye Wanderman-Milne
8b87099998 IMPALA-2: Support for Avro data files
Adds HdfsAvroScanner, as well as modifies the sequence scanners to be more general.
2014-01-08 10:48:05 -08:00
Sean Mackrory
67b9d126c4 IMP-755: Build GLog and GFlags exclusively in thirdparty without requiring either to be installed as a package 2014-01-08 10:47:57 -08:00
Lenni Kuff
fd8dfa21bd Fix build break due to cyrus sasl version not being set properly 2014-01-08 10:47:33 -08:00
Sean Mackrory
0268308f15 Fixing typo in previous patch 2014-01-08 10:47:32 -08:00
Sean Mackrory
42366f0387 Adding the option to use Cyrus-SASL and GLog from a separate toolchain location 2014-01-08 10:47:31 -08:00
Nong Li
65f4fd98e4 Move to LLVM 3.2 2014-01-08 10:47:23 -08:00
Henry Robinson
7ba437a52e Code changes to build against thrift 0.9.0 in thirdparty/ 2014-01-08 10:47:22 -08:00
Sean Mackrory
86525c00fe IMP-638: Using recompiled, relocatable static libraries when they are available 2014-01-08 10:47:13 -08:00
Henry Robinson
35e7e2a7a9 Move thirdparty library versions to environment variables 2014-01-08 10:46:38 -08:00
Henry Robinson
7f3573b9ae Remove FindBoost.cmake 2014-01-08 10:46:31 -08:00
Michael Ubell
ad46b98366 Add Kerberos authentication. 2014-01-08 10:45:10 -08:00
Michael Ubell
a524507b83 Jsig 2014-01-08 10:44:29 -08:00
Lenni Kuff
b068006b38 Fixed build break due to linking problem with libthriftnb
The FindThrift cmake module was searching for the non-blocking thrift library using the wrong file name
2014-01-08 10:44:16 -08:00
Henry Robinson
f4218ab55c Move all Thrift servers and clients to common ThriftServer /
ThriftClient classes, migrating to TNonblockingServer in the process
2014-01-08 10:44:16 -08:00
Henry Robinson
3490ee4484 Add webserver to impalad, by default on port 8080, for debugging 2012-07-14 10:39:54 -07:00
Alan Choi
ef10afa439 This changes the Thrift from 0.6.1 to 0.7.0. Please uninstall the old thrift and download/install Thrift 0.7.0.
Beeswax service now depends on Hive metastore;
fix buildall.sh to clean generated-source in FE;
fix .gitignore to clean generated-source in BE;
2012-06-14 18:21:08 -07:00
Nong Li
344c171c6a Aggregation Node Codegen. 2012-05-21 14:47:57 -07:00
Nong Li
6ad22ec7df Remove llvm from thirdparty. 2012-05-18 16:08:05 -07:00
Michael Ubell
156c32e153 Fix CMake for the snappy library. 2012-05-02 14:27:58 -07:00
Michael Ubell
7b14187bf1 Install snappy library
add create-load-data.sh
2012-05-02 07:31:10 -07:00
Nong Li
f2ddd7bb73 Enable loading llvm modules from disk and modifying it at runtime. 2012-04-23 11:17:21 -07:00
Nong Li
75f351fd8d Add -ldl linker flag for jenkins build. 2012-04-12 17:44:35 -07:00
Nong Li
73037cb6b9 Adding FindLlvm changes. 2012-04-12 16:41:25 -07:00
Nong Li
1dc8ee78ee Add LLVM expr jitting to the query engine. 2012-04-12 14:50:39 -07:00
Marcel Kornacker
4a4a07fde7 A number of changes for the Jenkins build:
- added option to run with derby metastore, based on whether env var METASTORE_IS_DERBY is set
- emoved hardwired file locations from planner tests
- switching to linking statically against libthrift.a

Also added script rebuild.sh, which contains the build steps of buildall.sh (against impala sources).
2012-03-08 16:19:47 -08:00
Michael Ubell
d4aa115876 Switch to gperftools-2.0 2012-02-29 08:10:54 -08:00