[78850] trunk/dports/java

ryandesign at macports.org ryandesign at macports.org
Tue May 24 06:10:01 PDT 2011


Revision: 78850
          http://trac.macports.org/changeset/78850
Author:   ryandesign at macports.org
Date:     2011-05-24 06:09:58 -0700 (Tue, 24 May 2011)
Log Message:
-----------
hadoop: new port, version 0.20.203.0; see #29542

Added Paths:
-----------
    trunk/dports/java/hadoop/
    trunk/dports/java/hadoop/Portfile
    trunk/dports/java/hadoop/files/
    trunk/dports/java/hadoop/files/hadoop-bin
    trunk/dports/java/hadoop/files/patch-conf.diff
    trunk/dports/java/hadoop/files/patch-hadoop-env.sh.diff

Added: trunk/dports/java/hadoop/Portfile
===================================================================
--- trunk/dports/java/hadoop/Portfile	                        (rev 0)
+++ trunk/dports/java/hadoop/Portfile	2011-05-24 13:09:58 UTC (rev 78850)
@@ -0,0 +1,167 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem          1.0
+
+name                hadoop
+version             0.20.203.0
+categories          java science
+platforms           darwin
+maintainers         gmail.com:hiroshi.umemoto openmaintainer
+license             Apache-2.0
+
+description         Open-source software for reliable, scalable, distributed computing
+
+long_description    Hadoop is a distributed computing platform written in Java. \
+                    It incorporates features similar to those of the Google File System \
+                    and of MapReduce.
+
+homepage            http://hadoop.apache.org/
+master_sites        apache:hadoop/common/stable
+
+distfiles           ${name}-${version}rc1${extract.suffix}
+
+checksums           sha1    18684bf8b8f72ef9a00a0034ad7167d6b16ce7c8 \
+                    rmd160  79bbcc8ad71f01d8179c2e6ce2ae60b371c4ed5d
+
+patchfiles          patch-hadoop-env.sh.diff
+
+use_configure       no
+supported_archs     noarch
+
+build {}
+
+set hadoopuser      hadoop
+
+set java_home       /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
+
+pre-configure {
+    if {![file exists ${java_home}]} {
+        ui_error "Java 1.6 is required, but not located at ${java_home}"
+        return -code error "Java 1.6 missing"
+    }
+}
+
+# Hadoop home and conf directories.
+set hadoop_basedir  ${prefix}/share/java
+set hadoop_home     ${hadoop_basedir}/${distname}
+set hadoop_conf_dir ${hadoop_home}/conf
+
+# Working directories.
+set hadoop_var_dir  ${prefix}/var/${name}
+set hadoop_log_dir  ${hadoop_var_dir}/log
+set hadoop_pid_dir  ${hadoop_var_dir}/run
+
+destroot {
+    # Copy the distribution to Hadoop home directory.
+    xinstall -m 755 -d  ${destroot}${hadoop_basedir}
+    copy ${worksrcpath} ${destroot}${hadoop_basedir}
+
+    # Patch for Mahout 0.4 to suppress warnings.
+    xinstall -m 755 -d \
+        ${destroot}${hadoop_home}/webapps/secondary/WEB-INF
+
+    # Install an extra script for this port.
+    set hadoop_bin ${destroot}${prefix}/bin/hadoop-bin
+    xinstall -m 755 ${filespath}/hadoop-bin      ${hadoop_bin}
+    reinplace "s|@hadoop_home@|${hadoop_home}|g" ${hadoop_bin}
+    reinplace "s|@java_home@|${java_home}|g"     ${hadoop_bin}
+    reinplace "s|@hadoopuser@|${hadoopuser}|g"   ${hadoop_bin}
+
+    # Setup 'hadoop-env.sh' in conf.
+    set env_sh ${destroot}${hadoop_conf_dir}/hadoop-env.sh
+    reinplace "s|@java_home@|${java_home}|g"           ${env_sh}
+    reinplace "s|@hadoop_log_dir@|${hadoop_log_dir}|g" ${env_sh}
+    reinplace "s|@hadoop_pid_dir@|${hadoop_pid_dir}|g" ${env_sh}
+
+    # Add Hadoop user and group.
+    addgroup ${hadoopuser}
+    set gid [existsgroup ${hadoopuser}]
+    adduser ${hadoopuser} \
+        gid=${gid} \
+        realname=Hadoop\ Server \
+        home=${hadoop_var_dir} \
+        shell=/bin/bash
+
+    # Create working directories.
+    xinstall -m 755 -o ${hadoopuser} -g ${hadoopuser} -d \
+        ${destroot}${hadoop_var_dir} \
+        ${destroot}${hadoop_log_dir} \
+        ${destroot}${hadoop_pid_dir}
+    destroot.keepdirs-append \
+        ${destroot}${hadoop_var_dir} \
+        ${destroot}${hadoop_log_dir} \
+        ${destroot}${hadoop_pid_dir}
+}
+
+post-deactivate {
+    ui_msg "********************************************************"
+    ui_msg "* To revert the system after uninstalling the port:"
+    ui_msg "* 1) Delete Hadoop working directory:"
+    ui_msg "*  $ sudo rm -rf ${hadoop_var_dir}"
+    ui_msg "* 2) Delete Hadoop user and group:"
+    ui_msg "*  $ sudo dscl . -delete /Users/${hadoopuser}"
+    ui_msg "*  $ sudo dscl . -delete /Groups/${hadoopuser}"
+    ui_msg "********************************************************"
+}
+
+default_variants    +pseudo
+
+set hadoop_tmp_dir  ${hadoop_var_dir}/cache
+
+variant pseudo description {Run on a single-node in a pseudo-distributed mode} {
+    patchfiles-append  patch-conf.diff
+
+    post-destroot {
+        # Set conf directory for a pseudo-distributed mode.
+        copy ${destroot}${hadoop_conf_dir} ${destroot}${hadoop_conf_dir}.pseudo
+        move ${destroot}${hadoop_conf_dir} ${destroot}${hadoop_conf_dir}.local
+        system "cd ${destroot}${hadoop_home} && ln -s conf.pseudo conf"
+
+        # Set the maximum number of tasks based on the number of the CPUs (cores).
+        regexp {\d+} [exec sysctl hw.ncpu] ncpu
+        set tasks_max [expr $ncpu + 2]
+
+        # Setup configuration files.
+        reinplace "s|@tasks_max@|${tasks_max}|g" \
+            ${destroot}${hadoop_conf_dir}.pseudo/mapred-site.xml
+        reinplace "s|@hadoop_tmp_dir@|${hadoop_tmp_dir}|" \
+            ${destroot}${hadoop_conf_dir}.pseudo/core-site.xml
+
+        # Create a temporary directory.
+        xinstall -m 755 -o ${hadoopuser} -g ${hadoopuser} -d \
+            ${destroot}${hadoop_tmp_dir}
+        destroot.keepdirs-append \
+            ${destroot}${hadoop_tmp_dir}
+    }
+
+    post-activate {
+        # Setup passphraseless ssh.
+        set ssh_dir ${hadoop_var_dir}/.ssh
+        if {![file exists ${ssh_dir}]} {
+            xinstall -m 700 -o ${hadoopuser} -g ${hadoopuser} -d ${ssh_dir}
+            system "sudo -u ${hadoopuser} ssh-keygen -t rsa -P '' -f ${ssh_dir}/id_rsa"
+            xinstall -m 644 -o ${hadoopuser} -g ${hadoopuser} \
+                ${ssh_dir}/id_rsa.pub \
+                ${ssh_dir}/authorized_keys
+        }
+
+        ui_msg "********************************************************"
+        ui_msg "* To run on a single-node in a pseudo-distributed mode:"
+        ui_msg "* 1) Turn on Remote Login (sshd):"
+        ui_msg "*  check 'System Preferences > Sharing > Remote Login'"
+        ui_msg "* 2) Format a new distributed-filesystem:"
+        ui_msg "*  $ hadoop-bin hadoop namenode -format"
+        ui_msg "* 3) Start the hadoop daemons:"
+        ui_msg "*  $ hadoop-bin start-all.sh"
+        ui_msg "* 4) Perform operations you like. To see examples:"
+        ui_msg "*  $ open file://${hadoop_home}/docs/single_node_setup.html"
+        ui_msg "* 5) When you're done, stop the daemons with:"
+        ui_msg "*  $ hadoop-bin stop-all.sh"
+        ui_msg "********************************************************"
+    }
+}
+
+livecheck.type      regex
+livecheck.url       http://www.apache.org/dist/hadoop/common/stable/
+livecheck.regex     ${name}-(\[0-9.\]+)


Property changes on: trunk/dports/java/hadoop/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/java/hadoop/files/hadoop-bin
===================================================================
--- trunk/dports/java/hadoop/files/hadoop-bin	                        (rev 0)
+++ trunk/dports/java/hadoop/files/hadoop-bin	2011-05-24 13:09:58 UTC (rev 78850)
@@ -0,0 +1,24 @@
+#!/bin/bash
+# Shell wrapper for Hadoop scripts in "$HADOOP_HOME/bin"
+# as a hadoop user.
+
+CMDNAME=`basename "$0"`
+
+export JAVA_HOME=@java_home@
+export HADOOP_HOME=@hadoop_home@
+
+usage() {
+    echo "Usage: $CMDNAME [-h|--help] script [args ..]"
+    echo "Executes a script in \"$HADOOP_HOME/bin\" as @hadoopuser@ user:"
+    ls $HADOOP_HOME/bin
+    exit 1
+}
+
+if [ $# -eq 0 -o "$1" = "-h" -o "$1" = "--help" ]; then
+    usage
+fi
+
+SCRIPT="$HADOOP_HOME/bin/$1"
+shift
+
+exec sudo -E -u @hadoopuser@ $SCRIPT "$@"

Added: trunk/dports/java/hadoop/files/patch-conf.diff
===================================================================
--- trunk/dports/java/hadoop/files/patch-conf.diff	                        (rev 0)
+++ trunk/dports/java/hadoop/files/patch-conf.diff	2011-05-24 13:09:58 UTC (rev 78850)
@@ -0,0 +1,52 @@
+--- conf/core-site.xml.orig	2011-05-05 00:00:30.000000000 +0900
++++ conf/core-site.xml	2011-05-16 22:42:36.000000000 +0900
+@@ -4,5 +4,12 @@
+ <!-- Put site-specific property overrides in this file. -->
+ 
+ <configuration>
+-
++  <property>
++    <name>fs.default.name</name>
++    <value>hdfs://localhost:9000</value>
++  </property>
++  <property>
++    <name>hadoop.tmp.dir</name>
++    <value>@hadoop_tmp_dir@</value>
++  </property>
+ </configuration>
+--- conf/hdfs-site.xml.orig	2011-05-05 00:00:30.000000000 +0900
++++ conf/hdfs-site.xml	2011-05-16 21:37:13.000000000 +0900
+@@ -4,5 +4,12 @@
+ <!-- Put site-specific property overrides in this file. -->
+ 
+ <configuration>
+-
++  <property>
++    <name>dfs.replication</name>
++    <value>1</value>
++  </property>
++  <property>
++    <name>dfs.permissions</name>
++    <value>false</value>
++  </property>
+ </configuration>
+--- conf/mapred-site.xml.orig	2011-05-05 00:00:30.000000000 +0900
++++ conf/mapred-site.xml	2011-05-16 23:00:56.000000000 +0900
+@@ -4,5 +4,16 @@
+ <!-- Put site-specific property overrides in this file. -->
+ 
+ <configuration>
+-
++  <property>
++    <name>mapred.job.tracker</name>
++    <value>localhost:9001</value>
++  </property>
++  <property>
++    <name>mapred.tasktracker.map.tasks.maximum</name>
++    <value>@tasks_max@</value>
++  </property>
++  <property>
++    <name>mapred.tasktracker.reduce.tasks.maximum</name>
++    <value>@tasks_max@</value>
++  </property>
+ </configuration>

Added: trunk/dports/java/hadoop/files/patch-hadoop-env.sh.diff
===================================================================
--- trunk/dports/java/hadoop/files/patch-hadoop-env.sh.diff	                        (rev 0)
+++ trunk/dports/java/hadoop/files/patch-hadoop-env.sh.diff	2011-05-24 13:09:58 UTC (rev 78850)
@@ -0,0 +1,39 @@
+--- conf/hadoop-env.sh.orig	2011-05-05 00:00:30.000000000 +0900
++++ conf/hadoop-env.sh	2011-05-16 23:40:40.000000000 +0900
+@@ -6,13 +6,16 @@
+ # remote nodes.
+ 
+ # The java implementation to use.  Required.
+-# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
++export JAVA_HOME=@java_home@
++
++# Extra Java options.
++export JAVA_OPTS="-Dfile.encoding=UTF-8 $JAVA_OPTS"
+ 
+ # Extra Java CLASSPATH elements.  Optional.
+ # export HADOOP_CLASSPATH=
+ 
+ # The maximum amount of heap to use, in MB. Default is 1000.
+-# export HADOOP_HEAPSIZE=2000
++export HADOOP_HEAPSIZE=2000
+ 
+ # Extra Java runtime options.  Empty by default.
+ # export HADOOP_OPTS=-server
+@@ -31,7 +34,7 @@
+ # export HADOOP_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HADOOP_CONF_DIR"
+ 
+ # Where log files are stored.  $HADOOP_HOME/logs by default.
+-# export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
++export HADOOP_LOG_DIR=@hadoop_log_dir@
+ 
+ # File naming remote slave hosts.  $HADOOP_HOME/conf/slaves by default.
+ # export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
+@@ -45,7 +48,7 @@
+ # export HADOOP_SLAVE_SLEEP=0.1
+ 
+ # The directory where pid files are stored. /tmp by default.
+-# export HADOOP_PID_DIR=/var/hadoop/pids
++export HADOOP_PID_DIR=@hadoop_pid_dir@
+ 
+ # A string representing this instance of hadoop. $USER by default.
+ # export HADOOP_IDENT_STRING=$USER
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110524/1b4df855/attachment-0001.html>


More information about the macports-changes mailing list