bigtop-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Boudnik <...@apache.org>
Subject Re: Bigtop Component Tutorial
Date Wed, 27 Mar 2013 17:38:55 GMT
Thanks Phil for taking a stab at it.
I believe this is a very good start for the collection of docs - development
and otherwise - which should belong to docs/ folder in the source tree.

Would you mind opening a JIRA for documentation improvement and submitting
this is as a patch?

Thanks, 
  Cos

On Wed, Mar 27, 2013 at 01:27PM, Philip Herron wrote:
> Hey all,
> 
> I forgot about this but i had written some documentation and didn't
> finish but this might be useful to put somewhere:
> 
> To make rpm components within bigtop its not written 100% but something
> is better than nothing.
> 
> --Phil
> 
> # Re sending this as i was not subscribed to the user mailing list and
> thing it could be useful there too.

>                             make-component
>                             ==============
> 
> Author: Philip Herron <philip.herron@wandisco.com>
> Date: 2013-03-27 13:09:35 GMT
> 
> 
> Table of Contents
> =================
> 1 Bigtop Component Tutorial 
>     1.1 RPM 
> 
> 
> 1 Bigtop Component Tutorial 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 1.1 RPM 
> ========
> Creating new Components for bigtop is very simple lets say your package is called MY_HADOOP_COMPONENT
> 
>   # add your archive for your component
>   $ $EDITOR Makefile
>   APACHE_MIRROR ?= http://apache.osuosl.org
>   # ..
>   MY_ARCHIVE ?= http://myarchive.com/dist/
>   
>   $ $EDITOR bigtop.mk
>   # add this to your BOM file bigtop.mk
>   MYHADCOMP_NAME=MY_HADOOP_COMPONENT
>   MYHADCOMP_RELNOTES_NAME=My Vedor string notes
>   MYHADCOMP_BASE_VERSION=1.0-SNAPSHOT
>   MYHADCOMP_PKG_VERSION=0.2+myvendorstring
>   MYHADCOMP_RELEASE_VERSION=1
>   MYHADCOMP_TARBALL_DST=MY_HADDOP_COMPONENT-$(MYHADCOMP_BASE_VERSION).tar.gz
>   MYHADCOMP_TARBALL_SRC=$(MYHADCOMP_TARBALL_DST)
>   MYHADCOMP_DOWNLOAD_PATH=/$(HDFS_TARBALL_SRC)
>   MYHADCOMP_SITE=$(MY_ARCHIVE)$(MYHADCOMP_DOWNLOAD_PATH)
>   MYHADCOMP_ARCHIVE=$(MYHADCOMP_SITE)
>   $(eval $(call PACKAGE,MY_HADOOP_COMPONENT,MYHADCOMP))
> 
> 
> This BOM config will be looking for:
> 
> [http://myarchive.com/dist/MY\_HADOOP\_COMPONENT-1.0-SNAPSHOT.tar.gz]
> And will download to the DST specified. This is useful because one you have this done
to upgrade
> versions all you do is edit the bom file and specify the new version and bigtop takes
care of the rest
> 
> Now you need to add in all your work to make the packages build. The idiom in bigtop
is to have a {common,rpm,deb}
> with this you have a common dir with files affecting both rpm and deb builds. We usualy
had a do-component-build
> 
> So lets create the dir structure you need for MY_HADOOP_COMPONENT
> 
>   $ mkdir bigtop-packages/src/{common,rpm}/MY_HADOOP_COMPONENT
>   $ $EDITOR bigtop-packages/src/common/do-component-build
>   # this is just bash within this file so it might simply be:
>   
>   #!/bin/bash
>   set -ex
>   . `dirname $0`/bigtop.bom
>   
>   ant -Dhadoop.version=${HADOOP_VERSION} dist
>   EOF
>   
>   $ mkdir bigtop-packages/src/rpm/MY_HADOOP_COMPONENT/SPECS
>   $ $EDITOR bigtop-packages/src/rpm/MY_HADOOP_COMPONENT/SPECS/MY_HADOOP_COMPONENT.spec
>   Name:           MY_HADOOP_COMPONENT
>   Version:        %{MY_HADOOP_COMPONENT_version}
>   Release:        %{MY_HADOOP_COMPONENT_release}
>   Summary:        summary of what this is
>   
>   Group:          Development/Libraries
>   License:        Your license
>   URL:            http://wandisco.com
>   Source0:        MY_HADOOP_COMPONENT-%{MY_HADOOP_COMPONENT_base_version}.tar.gz
>   Source1:        do-component-build
>   BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
>   
>   #BuildRequires: 
>   Requires:       hadoop-hdfs.....
>   
>   AutoReq: no
>   
>   %define lib_hadoop_dirname /usr/lib
>   %define lib_hdfs %{lib_hadoop_dirname}/hadoop-hdfs
>   
>   %description
>   longer description of your package
>   
>   %prep
>   %setup -n MY_HADOOP_COMPONENT-%{MY_HADOOP_COMPONENT_base_version}
>   
>   %build
>   bash %{SOURCE1}
>   
>   %install
>   rm -rf $RPM_BUILD_ROOT
>   
>   %__install -d -m 0755 $RPM_BUILD_ROOT/%{lib_hdfs}
>   %__install -m 0755 dist/lib/MY_HADOOP_COMPONENT-%{MY_HADOOP_COMPONENT_base_version}.jar
$RPM_BUILD_ROOT/%{lib_hdfs}
>   %__install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT/%{l
>   
>   %clean
>   rm -rf $RPM_BUILD_ROOT
>   
>   %files
>   %defattr(-,root,root,-)
>   %{lib_hdfs}
>   
>   %changelog
>   
>   EOF
>   
>   # Make sure you keep the naming proper as bigtop will be looking for the same name
as specified within MYHADCOMP_NAME in your BOM file.
> 
> 
> Now you should be able to run:
> 
>   make MY_HADOOP_COMPONENT-rpm
> 
> 
> Done!
> 
> [http://myarchive.com/dist/MY\_HADOOP\_COMPONENT-1.0-SNAPSHOT.tar.gz]: http://myarchive.com/dist/MY_HADOOP_COMPONENT-1.0-SNAPSHOT.tar.gz
> 


Mime
View raw message