[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