Coder Social home page Coder Social logo

vicaya / hypertable Goto Github PK

View Code? Open in Web Editor NEW
116.0 9.0 124.0 56.37 MB

A flexible database focused on performance and scalability

Home Page: http://hypertable.org/

License: GNU General Public License v2.0

Shell 1.41% Ruby 1.98% C 4.90% Python 5.20% PHP 5.74% Perl 6.32% Java 20.32% C++ 54.12%

hypertable's Introduction

HOW TO INSTALL

You can either download an appropriate binary package for your platform or build from source. Binary packages can be obtained from here.

See this wiki page for getting started with hypertable binary packages.

HOW TO BUILD FROM SOURCE

  1. Download the source:

    You can either download a release source tar ball from the download page and unpack it in your source directory say ~/src:

    cd ~/src
    tar zxvf <path_to>/hypertable-<version>-src.tar.gz
    

    or from our git repository:

    cd ~/src
    git clone git://scm.hypertable.org/pub/repos/hypertable.git
    

    From now on, we assume that your hypertable source tree is ~/src/hypertable

  2. Install the development environment:

    Run the following script to setup up the dev environment:

    ~/src/hypertable/bin/src-utils/htbuild --install dev_env
    

    If it did not work for your platform, check out the HowToBuild wiki for various tips on building on various platforms.

    Patches for htbuild to support your platforms are welcome :)

  3. Configure the build:

    Assuming you want your build tree to be ~/build/hypertable

    mkdir -p ~/build/hypertable
    cd ~/build/hypertable
    cmake ~/src/hypertable
    

    By default, hypertable gets installed in /opt/hypertable. To install into your own install directory, say $prefix, you can use:

    cmake -DCMAKE_INSTALL_PREFIX=$prefix ~/src/hypertable
    

    By default the build is configured for debug. To make a release build for production/performance test/benchmark:

    cmake -DCMAKE_BUILD_TYPE=Release ~/src/hypertable
    

    Note, you can also use:

    ccmake ~/src/hypertable
    

    to change build parameters interactively.

    To build shared libraries, e.g., for scripting language extensions:

    cmake -DBUILD_SHARED_LIBS=ON ~/src/hypertable
    

    Since PHP has no builtin package system, its thrift installation needs to be manually specified for ThriftBroker support:

    cmake -DPHPTHRIFT_ROOT=~/thrift/lib/php/src ~/src/hypertable
    
  4. Build Hypertable binaries.

    make (or make -jnumber_of_cpu_or_cores_plus_1 for faster compile)
    make install
    

    Note, if it is a shared library install, you might need to do:

    echo $prefix/$version/lib | \
        sudo tee /etc/ld.so.conf.d/hypertable
    sudo /sbin/ldconfig
    

    Or, you can use the usual LD_LIBRARY_PATH (most Unix like OS) and DYLD_LIBRARY_PATH (Mac OS X) to specify non-standard shared library directories.

HOW TO MAKE BINARY PACKAGES

The available package generators for cmake are a little different on different platforms. It is usually best to generate binary packages on their native platforms.

cd ~/build/hypertable
~/src/hypertable/bin/src-utils/htpkg generator...

where generator can be DEB (for debian packages), RPM (for redhat/fedora/centos packages), PackageMaker (for Mac OS X packages) and STGZ (for self extracting gzipped tar files.) etc. See cpack(1) for more options.

For every generator listed on the command line, the above command will generate two packages: one for the entire hypertable distribution and one for thriftbroker only.

You can also use htbuild to generate binary packages on remote machines that are not setup for development, even a base Amazon EC2 image:

~/src/hypertable/bin/src-utils/htbuild --ami ami-5946a730 DEB RPM TBZ2

At the moment, I recommend an Ubuntu/Debian machine for generating binary packages as it can generate both RPM and DEB correctly faster without having to disable prelinking and selinux like on Fedora/Redhat.

HOW TO RUN REGRESSION TESTS

  1. Make sure software is built and installed according to "HOW TO BUILD FROM SOURCE"

  2. Run the regression tests

    cd ~/build/hypertable
    make alltests
    

Note: there are two other high-level test targets: coretests (for core tests) and moretests (for more longer running tests, which is included in alltests.) These high-level test targets will (re)start test servers automatically when new servers are installed. There is also a low-level "test" target in root of the build tree and src (and src/lang/Components) and tests/integration directories that does NOT auto restart test servers.

HOW TO BUILD SOURCE CODE DOCUMENTATION TREE

  1. Install the following tools:

    Note: if you ran htbuild --install dev_env, these should already be installed

  2. If you have doxygen installed on your system, then CMake should detect this and add a "doc" target to the make file. Building the source code documentation tree is just a matter of running the following commands:

    cd ~/build/hypertable
    make doc
    

To view the docs, load the following file into a web browser:

  • ~/build/hypertable/doc/html/index.html for source code documentation and,
  • ~/build/hypertable/gen-html/index.html for Thrift API reference.
  • ~/build/hypertable/hqldoc/index.html for HQL reference.

The Thrift API doc can also be generated independently (without doxygen installed) by running the follow command in the build tree:

make thriftdoc

Similarly HQL doc can be generated independently (without doxygen etc.):

make hqldoc

hypertable's People

Contributors

bithckr avatar kejia-liu avatar michaelklishin avatar nuggetwheat avatar sjhalaz avatar vicaya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.