You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by Apache Wiki <wi...@apache.org> on 2011/12/30 18:03:20 UTC

[Hadoop Wiki] Update of "HowToContribute" by QwertyManiac

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The "HowToContribute" page has been changed by QwertyManiac:
http://wiki.apache.org/hadoop/HowToContribute?action=diff&rev1=74&rev2=75

Comment:
HADOOP-7944, contributions from Mark Pollack

  To build the code, install (as well as the programs needed to run Hadoop on Windows, if that is your development platform)
   * [[http://ant.apache.org/|Apache Ant]]
   * [[http://maven.apache.org/|Apache Maven]]
+  * [[http://java.com/|Oracle Java 6]]
- These should be on the path; test by executing {{{ant}}} and {{{mvn}}} respectively.
+ These should also be on your PATH; test by executing {{{ant}}} and {{{mvn}}} and {{{javac}}} respectively.
  
  As the Hadoop builds use the external Maven repository to download artifacts, Ant and Maven need to be set up with the proxy settings needed to make external HTTP requests. You will also need to be online for the first builds of every Hadoop project, so that the dependencies can all be downloaded.
- 
  
  === Other items ===
  
   * A Java Development Kit is required to be installed and on the path of executables. The Hadoop developers recommend the Sun JDK.
   * The source code of projects that you depend on. Avro, Jetty, Log4J are some examples. This isn't compulsory, but as the source is there, it helps you see what is going on.
   * The source code of the Java version that you are using. Again: handy.
-  * The Java API javadocs. 
+  * The Java API javadocs.
-  * the {{{diff}}} and {{{patch}}} commands, which ship with Unix/Linux systems, and come with cygwin. 
+  * the {{{diff}}} and {{{patch}}} commands, which ship with Unix/Linux systems, and come with cygwin.
-  
+ 
  
  ==== Hardware Setup ====
  
-  * Lots of RAM, especially if you are using a modern IDE. ECC RAM is recommended in large-RAM systems. 
+  * Lots of RAM, especially if you are using a modern IDE. ECC RAM is recommended in large-RAM systems.
   * Disk Space. Always handy.
-  * Network Connectivity. Hadoop tests are not guaranteed to all work if a machine does not have a network connection -and especially if it does not know its own name. 
+  * Network Connectivity. Hadoop tests are not guaranteed to all work if a machine does not have a network connection -and especially if it does not know its own name.
   * Keep your computer's clock up to date via an NTP server, and set up the time zone correctly. This is good for avoiding change-log confusion.
  
  === Getting the source code ===
@@ -75, +75 @@

  
  This is a good opportunity to get the GNU C/C++ toolchain installed, which is useful for working on the native code used in the HDFS project.
  
- To install and use ProtocolBuffers 
+ To install and use ProtocolBuffers
  
  ==== Linux ====
  
- Install the protobuf packages ''provided they are current enough'' -see the README file for the current version. If they are too old, uninstall any version you have and follow the instructions. 
+ Install the protobuf packages ''provided they are current enough'' -see the README file for the current version. If they are too old, uninstall any version you have and follow the instructions.
  
  ==== Local build and installation ====
  
-  * you need a copy of GCC 4.1+ including the {{{g++}}} C++ compiler, {{{make}}} and the rest of the GNU C++ development chain. 
+  * you need a copy of GCC 4.1+ including the {{{g++}}} C++ compiler, {{{make}}} and the rest of the GNU C++ development chain.
   * Linux: you need a copy of autoconf installed, which your local package manager will do -along with automake.
   * Download the version of protocol buffers that the YARN readme recommends from [[http://code.google.com/p/protobuf/|the protocol buffers project]].
   * unzip it/untar it
   * {{{cd}}} into the directory that has been created.
-  * run {{{/.configure}}}. 
+  * run {{{/.configure}}}.
   * If configure fails with "C++ preprocessor "/lib/cpp" fails sanity check" that means you don't have g++ installed. Install it.
   * run {{{make}}} to build the libraries.
-  * on a Unix system, after building the libraries, you must install it ''as root''. {{{su}}} to root, then run 
+  * on a Unix system, after building the libraries, you must install it ''as root''. {{{su}}} to root, then run
  
  ==== Testing your Protocol Buffers installation ====
  
@@ -102, +102 @@

  Missing input file.
  }}}
  
- You may see the error message 
+ You may see the error message
  {{{
  $ protoc
  protoc: error while loading shared libraries: libprotobuf.so.7: cannot open shared object file: No such file or directory
  }}}
  
  This is a [[http://code.google.com/p/protobuf/issues/detail?id=213|known issue]] for Linux, and is caused by a stale cache of libraries. Run {{{ldconfig}}} and try again.
- 
- 
- 
  
  === Making Changes ===
  Before you start, send a message to the [[http://hadoop.apache.org/core/mailing_lists.html|Hadoop developer mailing list]], or file a bug report in [[Jira]].  Describe your proposed changes and check that they fit in with what others are doing and have planned for the project.  Be patient, it may take folks a while to understand your requirements.
@@ -139, +136 @@

  ==== Using Maven ====
  Hadoop 0.23 and later is built using [[http://maven.apache.org/|Apache Maven]], version 3 or later. (Parts of MapReduce are still built using Ant, see the instructions in the {{{INSTALL}}} file in {{{hadoop-mapreduce}}} for details.)
  
- Maven likes to download things, especially on the first run. 
+ Maven likes to download things, especially on the first run.
   1. Be online for that first build, on a good network
   1. To set the Maven proxy setttings, see http://maven.apache.org/guides/mini/guide-proxies.html
-  1. Because Maven doesn't pass proxy settings down to the Ant tasks it runs [[https://issues.apache.org/jira/browse/HDFS-2381|HDFS-2381]] some parts of the Hadoop build may fail. The fix for this is to pass down the Ant proxy settings in the build Unix: {{{mvn $ANT_OPTS}}}; windows   {{{mvn %ANT_OPTS%}}}. 
+  1. Because Maven doesn't pass proxy settings down to the Ant tasks it runs [[https://issues.apache.org/jira/browse/HDFS-2381|HDFS-2381]] some parts of the Hadoop build may fail. The fix for this is to pass down the Ant proxy settings in the build Unix: {{{mvn $ANT_OPTS}}}; windows   {{{mvn %ANT_OPTS%}}}.
  
  
  === Generating a patch ===
@@ -211, +208 @@

  
  ==== Naming your patch ====
  
- Patches for trunk should be named according to the Jira: '''jira-xyz.patch''', eg hdfs-1234.patch. 
+ Patches for trunk should be named according to the Jira: '''jira-xyz.patch''', eg hdfs-1234.patch.
  
  Patches for a non-trunk branch should be named '''jira-xyz-branch.patch''', eg hdfs-123-branch-0.20-security.patch.  The branch name suffix should be the exact name of a Subversion branch under hadoop/common/branches/, such as "branch-0.20-security".  This naming convention allows the pre-commit tests to automatically run against the correct branch (new capability coming soon; see HADOOP-7435).
  
- It's OK to upload a new patch to Jira with the same name as an existing patch, Jira will just make the previous patches grey. They're still listed, sorted by date. If you select the "Activity>All" tab then the different versions are linked in the comment stream, providing context. 
+ It's OK to upload a new patch to Jira with the same name as an existing patch, Jira will just make the previous patches grey. They're still listed, sorted by date. If you select the "Activity>All" tab then the different versions are linked in the comment stream, providing context.
  
  
  ==== Testing your patch ====