Skip to content

Commit

Permalink
Initial Impala commit
Browse files Browse the repository at this point in the history
  • Loading branch information
lskuff committed Oct 23, 2012
1 parent 2089824 commit 40cfaa5
Show file tree
Hide file tree
Showing 577 changed files with 90,132 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
*~
*.pyc
.*.swp
derby.log
thirdparty
cscope.files
cscope.out
bin/version.info

pprof.out

# CMake:
Makefile
CMakeCache.txt
CMakeFiles
cmake_install.cmake
CTestTestfile.cmake
!CMakeLists.txt
llvm-ir/
shell/gen-py/
shell/build/
138 changes: 138 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Copyright (c) 2012 Cloudera, Inc. All rights reserved.

cmake_minimum_required(VERSION 2.6)

# generate CTest input files
enable_testing()

# where to find cmake modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules")

# find boost headers and libs
set(Boost_DEBUG TRUE)
# in order to load libbackend.so into the jvm, we need to link against a shared
# libboost_thread-mt.so
#set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost REQUIRED COMPONENTS thread regex-mt)
include_directories(${Boost_INCLUDE_DIRS})
set(LIBS ${LIBS} ${Boost_LIBRARIES})
message(STATUS ${Boost_INCLUDE_DIRS})
message(STATUS ${Boost_LIBRARIES})

# find jni headers and libs
find_package(JNI REQUIRED)
include_directories(${JNI_INCLUDE_DIRS})
set(LIBS ${LIBS} ${JNI_LIBRARIES})
message(STATUS "JNI_INCLUDE_DIRS: ${JNI_INCLUDE_DIRS}")
message(STATUS "JNI_LIBRARIES: ${JNI_LIBRARIES}")

# find HDFS headers and libs
find_package(HDFS REQUIRED)
include_directories(${HDFS_INCLUDE_DIR})
set(LIBS ${LIBS} ${HDFS_LIBS})

find_package(Mongoose REQUIRED)
include_directories(${MONGOOSE_INCLUDE_DIR})

# find GLog headers and libs. Must include glog headers before the other
# google libraries. They all have a config.h and we want glog's to be picked
# up first.
find_package(GLog REQUIRED)
include_directories(${GLOG_INCLUDE_DIR})
set(LIBS ${LIBS} ${GLOG_LIBS})
# for static linking with GLOG, GLOG_STATIC_LIB is set in GLOG's find module
add_library(glogstatic STATIC IMPORTED)
set_target_properties(glogstatic PROPERTIES IMPORTED_LOCATION ${GLOG_STATIC_LIB})

message(STATUS ${GLOG_INCLUDE_DIR})

# find GFlags headers and libs (needed for GLog)
find_package(GFlags REQUIRED)
include_directories(${GFLAGS_INCLUDE_DIR})
set(LIBS ${LIBS} ${GFLAGS_LIBS})
# for static linking with GFLAGS, GFLAGS_STATIC_LIB is set in GFLAGS' find module
add_library(gflagsstatic STATIC IMPORTED)
set_target_properties(gflagsstatic PROPERTIES IMPORTED_LOCATION ${GFLAGS_STATIC_LIB})

message(STATUS ${GFLAGS_INCLUDE_DIR})

# find PProf libs
find_package(PProf REQUIRED)
include_directories(${PPROF_INCLUDE_DIR})
set (LIBS ${LIBS} ${PPROF_LIBRARIES})
add_library(pprofstatic STATIC IMPORTED)
set_target_properties(pprofstatic PROPERTIES IMPORTED_LOCATION "${PPROF_STATIC_LIB}")
add_library(tcmallocstatic STATIC IMPORTED)
set_target_properties(tcmallocstatic PROPERTIES IMPORTED_LOCATION "${HEAPPROF_STATIC_LIB}")

message(STATUS ${PPROF_INCLUDE_DIR})

# find GTest headers and libs
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})
set(LIBS ${LIBS} ${GTEST_LIBRARIES})
add_library(gtest STATIC IMPORTED)
set_target_properties(gtest PROPERTIES IMPORTED_LOCATION "${GTEST_LIBRARY}")

message(STATUS ${GTEST_INCLUDE_DIR})
message(STATUS ${GTEST_LIBRARY})

# find LLVM
find_package(Llvm REQUIRED)
include_directories(${LLVM_INCLUDE_DIR})
set(LIBS ${LIBS} ${LLVM_MODULE_LIBS})

# find Sasl
find_package(Sasl REQUIRED)
include_directories(${SASL_INCLUDE_DIR})
add_library(saslstatic STATIC IMPORTED)
set_target_properties(saslstatic PROPERTIES IMPORTED_LOCATION ${SASL_STATIC_LIBRARY})
set(SASL_LIBRARY saslstatic)

# find thrift headers and libs
find_package(Thrift REQUIRED)
include_directories(${Thrift_INCLUDE_DIR})
set(LIBS ${LIBS} ${Thrift_LIBS})
message(STATUS "Thrift include dir: ${Thrift_INCLUDE_DIR}")
message(STATUS "Thrift library path: ${Thrift_LIBS}")
message(STATUS "Thrift static library: ${Thrift_STATIC_LIB}")
message(STATUS "Thrift static non-blocking library: ${Thrift_NB_STATIC_LIB}")
message(STATUS "Thrift compiler: ${Thrift_COMPILER}")
# for static linking with Thrift, Thrift_STATIC_LIB is set in FindThrift.cmake
add_library(thriftstatic STATIC IMPORTED)
set_target_properties(thriftstatic PROPERTIES IMPORTED_LOCATION ${Thrift_STATIC_LIB})
add_library(thriftnbstatic STATIC IMPORTED)
set_target_properties(thriftnbstatic PROPERTIES IMPORTED_LOCATION ${Thrift_NB_STATIC_LIB})

# find Snappy headers and libs
find_package(Snappy REQUIRED)
include_directories(${SNAPPY_INCLUDE_DIR})
set(LIBS ${LIBS} ${SNAPPY_LIBRARIES})
add_library(snappy STATIC IMPORTED)
set_target_properties(snappy PROPERTIES IMPORTED_LOCATION "${SNAPPY_LIBRARY}")

message(STATUS ${SNAPPY_INCLUDE_DIR})
message(STATUS ${SNAPPY_LIBRARY})

# compile these subdirs using their own CMakeLists.txt
add_subdirectory(common/function-registry)
add_subdirectory(common/thrift)
add_subdirectory(be)

# Run FE and BE tests
add_custom_target(testall
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_SOURCE_DIR}/fe mvn test
COMMAND ${CMAKE_SOURCE_DIR}/bin/runbackendtests.sh
)

# Load test data
add_custom_target(loadtestdata
COMMAND ${CMAKE_SOURCE_DIR}/bin/load-test-data.sh
)

add_custom_target(benchmark_run
COMMAND ${CMAKE_SOURCE_DIR}/be/bin/run_hive_benchmark.py
)
24 changes: 24 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Build Dependencies
-----------------------------------------------------------------------------------------
The following dependencies need to be installed to properly build the source tree:

* Boost
* Bzip2 library
* Zlib library
* Python dev
* cmake
* sasl
* LLVM 3.0
* Thrift 0.7.0
* Maven


Environment Setup
-----------------------------------------------------------------------------------------
Make sure JAVA_HOME is set correctly for your system. From the root of your git checkout
of Impala, source bin/impala-config.sh. This will set a environment variables that the
build scripts and binaries rely on.

Building
-----------------------------------------------------------------------------------------
The to build the full source tree run ./buildall.sh
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Impala documentation can be found here:
https://ccp.cloudera.com/display/IMPALA10BETADOC/Cloudera+Impala+1.0+Beta+Documentation
6 changes: 6 additions & 0 deletions be/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*~

build
generated-sources/**/*
src/common/version.cc

Loading

0 comments on commit 40cfaa5

Please sign in to comment.