Skip to content

disciplezero/mysql-replication-listener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The MySQL Replicant Library is a C++ library for reading MySQL
replication events, either by connecting to a server or by reading
from a file. To handle reading from a server, it includes a very
simple client.


Dependencies
------------

You need to have CMake version 2.8 or later and libmysqlclient
latest version.

To be able to run the unit tests, you have to have Google Test
installed. Google Test will be automatically installed if cmake is
called as:

   cmake . -DENABLE_DOWNLOADS=1


Directory structure
-------------------

    .
    |-- doc                 Documentation
    |-- examples            Examples
    |-- include             Include files
    |-- src                 Source files for library
    `-- tests               Unit test files and directories


Building
--------

To build the entire package, it is first necessary to run CMake to build 
all the makefiles. Before running CMake set this environment variable MYSQL_DIR
to point to the libmysql library or the MySQL directory and then you can figure 
out where to find the right files in the cmake code.

If you have libmysql installed on your system you can skip this step.
       
        export MYSQL_DIR=<path of mysql directory or libmysql> 
        cmake .
        make -j4

Some of the examples are using third-party software, which can require
extra parameters to be given to CMake.

If you want to perform an out-of-source build, you can just create a
build directory and execute CMake there.

      mkdir build
      cd build
      cmake <source directory>
      make -j4


Building the mysql2hdfs Example
-------------------------------

To build the mysql2hdfs example, it is necessary to ensure that the
'FindHDFS.cmake' is in the CMAKE_MODULE_PATH, for example:

    cmake . -DCMAKE_MODULE_PATH:String=/usr/share/cmake-2.8/Modules

In addition, CMake doesn't come with a 'find' module for libhdfs. But
you can find one on the internet(in a file FindHDFS.cmake); and put
the file in CMake module path.

It is also required to set the Environment variable $HADOOP_HOME, which
points to the Hadoop installation directory.

For hadoop version 1.x, the path for libhdfs library and include files
requires to be modified in the file FindHDFS.cmake. The following
patch will fix the FindHDFS.cmake file:

    --- a/cmake_modules/FindHDFS.cmake
    +++ b/cmake_modules/FindHDFS.cmake
    @@ -11,6 +11,7 @@ exec_program(hadoop ARGS version OUTPUT_VARIABLE Hadoop_VERSION
     # currently only looking in HADOOP_HOME
     find_path(HDFS_INCLUDE_DIR hdfs.h PATHS
       $ENV{HADOOP_HOME}/include/
    +  $ENV{HADOOP_HOME}/src/c++/libhdfs/
       # make sure we don't accidentally pick up a different version
       NO_DEFAULT_PATH
     )
    @@ -26,9 +27,9 @@ endif()
     message(STATUS "Architecture: ${arch_hint}")

     if ("${arch_hint}" STREQUAL "x64")
    -  set(HDFS_LIB_PATHS $ENV{HADOOP_HOME}/lib/native)
    +  set(HDFS_LIB_PATHS $ENV{HADOOP_HOME}/c++/Linux-amd64-64/lib)
     else ()
    -  set(HDFS_LIB_PATHS $ENV{HADOOP_HOME}/lib/native)
    +  set(HDFS_LIB_PATHS $ENV{HADOOP_HOME}/c++/Linux-i386-32/lib)
     endif ()

     message(STATUS "HDFS_LIB_PATHS: ${HDFS_LIB_PATHS}")

The environment variable $HADOOP_HOME must be set, pointing to the hadoop
installation directory on your machine.

Since libhdfs is JNI based API, it requires JNI header files and libraries to
build. If there exists a module FindJNI.cmake in the CMAKE_MODULE_PATH and
JAVA_HOME is set; the headers will be included, and the libraries would be
linked to. If not, it will be required to include the headers and load the
libraries separately (modify LD_LIBRARY_PATH).

About

Clean import from bzr branch lp:mysql-replication-listener

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published