| /* | |
| * Licensed to the Apache Software Foundation (ASF) under one | |
| * or more contributor license agreements. See the NOTICE file | |
| * distributed with this work for additional information | |
| * regarding copyright ownership. The ASF licenses this file | |
| * to you under the Apache License, Version 2.0 (the | |
| * "License"); you may not use this file except in compliance | |
| * with the License. You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| CentOS 6.5 build | |
| Install Prerequisites | |
| --------------------- | |
| 0) Install development tools | |
| $>yum groupinstall 'Development Tools' | |
| 1) CMAKE 3 | |
| $> yum install cmake3 | |
| 2.1) Download protobuf 3.11 from : | |
| https://github.com/protocolbuffers/protobuf/releases/download/v3.11.1/protobuf-java-3.11.1.zip | |
| 2.2) Install Protobufs | |
| $> unzip protobuf-java-3.11.1.zip | |
| $> cd protobuf-3.11.1 | |
| $> ./configure | |
| $> sudo make | |
| $> sudo make install | |
| 3) | |
| 3.1) Install Zookeeper prerequisites | |
| - autoconf 2.59 or greater (should be installed with dev tools) | |
| - cppunit 1.10.x or higher | |
| 3.1.1) install cppuint | |
| $> sudo yum install cppunit | |
| $> sudo yum install cppunit-devel | |
| 3.2) Download Zookeeper from : | |
| - https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/ | |
| - untar and then follow instructions in ZOOKEEPER_DIR/src/c/README to build and install the client libs | |
| 3.3) run autoreconf | |
| $> autoreconf -if | |
| 3.4) Build Zookeeper libs | |
| $> ./configure --enable-debug --with-syncapi --enable-static --enable-shared | |
| $> make && sudo make install | |
| 4) Install boost. The minimum version required is 1.54, which will probably have to be built from source | |
| # Build boost for Drill using instruction from readme.boost. | |
| # Uncomment set(Boost_NAMESPACE drill_boost) line in client/CMakeLists.txt | |
| OR | |
| Download and build using boost build. | |
| See this link for how to build: http://www.boost.org/doc/libs/1_54_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary | |
| After building boost from the source, you will need to specify where to find it by adding -DBOOST_ROOT=<boost install directory> to your cmake command | |
| 5) Install or build Cyrus SASL | |
| To Install | |
| yum install cyrus-sasl-devel cyrus-sasl-gssapi | |
| libs are installed in /usr/lib64/sasl2 | |
| includes are installed in /usr/include | |
| To build your own | |
| See readme.sasl for instructions | |
| 6) Install OpenSSL | |
| yum install openssl-devel openssl | |
| (Optional) Refresh protobuf source files | |
| ---------------------------------------- | |
| When changes have been introduced to the protocol module, you might need to refresh the protobuf C++ source files too. | |
| $> cd DRILL_DIR/contrib/native/client | |
| $> mkdir build | |
| $> cd build && cmake3 -G "Unix Makefiles" .. | |
| $> make cpProtobufs | |
| Open a pull request with the changes to DRILL_DIR/contrib/native/client/src/protobuf | |
| Build drill client | |
| ------------------- | |
| $> cd DRILL_DIR/contrib/native/client | |
| $> mkdir build | |
| $> cd build && cmake3 -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug .. | |
| $> make | |
| Test | |
| ---- | |
| Run query submitter from the command line | |
| $> querySubmitter query='SELECT * FROM cp.`employee.json` LIMIT 20' type=sql connectStr=local=10.250.0.146:31010 api=async logLevel=trace user=yourUserName password=yourPassWord | |
| Valgrind | |
| -------- | |
| Examples to run Valgrind and see the log in Valkyrie | |
| $> valgrind --leak-check=yes --xml=yes --xml-file=qs-vg-log-a.xml querySubmitter query='SELECT * FROM cp.`employee.json` LIMIT 20' type=sql connectStr=local=10.250.0.146:31010 api=async logLevel=trace | |
| $> valkyrie -l qs-vg-log-a.xml | |