Mercurial > repos > crs4 > hadoop_galaxy
changeset 0:7698311d4466 draft
Uploaded
author | crs4 |
---|---|
date | Fri, 30 May 2014 06:48:47 -0400 |
parents | |
children | 30bd2584b6a0 |
files | cat_paths.xml datatypes_conf.xml dist_text_zipper.xml make_pathset.xml put_dataset.xml split_pathset.xml tool_conf.xml tool_dependencies.xml |
diffstat | 8 files changed, 296 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cat_paths.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,62 @@ +<tool id="hadoop_galaxy_cat_paths" name="Cat paths" version="0.1.0"> + <description>Concatenate all components of a pathset into a single file.</description> + <requirements> + <requirement type="package" version="0.11">pydoop</requirement> + <requirement type="package" version="0.1.1">hadoop-galaxy</requirement> + </requirements> + + <command> + #if $use_hadoop + dist_cat_paths + #else + cat_paths + #end if + #if $delete_source + --delete-source + #end if + $input_pathset $output_path + </command> + + <inputs> + <param name="input_pathset" type="data" format="pathset" label="Input pathset"> + <validator type="empty_field" /> + </param> + <param name="delete_source" type="boolean" checked="false" label="Delete remote input data" + help="This option makes the tool move the data rather than copy it" /> + <param name="use_hadoop" type="boolean" checked="false" label="Use Hadoop-based program" + help="The Galaxy workspace must be accessible by the Hadoop cluster (see help for details)" /> + </inputs> + + <outputs> + <!-- TODO: can we read the format from input pathset and transfer it to output? --> + <data name="output_path" format="data" label="Concatenated dataset $input_pathset.name" /> + </outputs> + + <stdio> + <exit_code range="1:" level="fatal" /> + </stdio> + + <help> +Datasets represented as pathsets can be split in a number of files. +This tool takes all of them and concatenates them into a single output file. + +In your workflow, you'll need to explicitly set the appropriate data format on the +output dataset with an Action to "Change Datatype". + +"Delete remote input data" option +==================================== +With this option, after the data has been concated into the new Galaxy dataset, +the original files that were referenced by the pathset are deleted. This effectively +tells the action to "move" the data instead of a "copying" it and helps +avoid amassing intermediate data in your Hadoop workspace. + + +"Use Hadoop-based program" option +==================================== + +With this option you will use your entire Hadoop cluster to simultaneously write +multiple parts of the final file. For this to be possible, the Hadoop nodes +must be able to access the Galaxy file space directly. In addition, to achieve +reasonable results the Galaxy workspace should on a parallel shared file system. + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datatypes_conf.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<datatypes> + <registration> + <datatype extension="pathset" type="galaxy.datatypes.data:Text" mimetype="text/plain" subclass="True" display_in_upload="true" /> + </registration> +</datatypes>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dist_text_zipper.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,30 @@ +<tool id="hadoop_galaxy_dist_text_zipper" name="Dist TextZipper" version="0.1.0"> + <description>Compress lots of text files on Hadoop</description> + <requirements> + <requirement type="package" version="0.11">pydoop</requirement> + <requirement type="package" version="0.1.1">hadoop-galaxy</requirement> + </requirements> + + <command> + hadoop_galaxy + --input $input_data + --output $output + --executable dist_text_zipper + </command> + + <inputs> + <param name="input_data" type="data" format="pathset" label="Source data set"/> + </inputs> + + <outputs> + <data name="output" format="pathset" label="Zipped $input_data.name" /> + </outputs> + + <stdio> + <exit_code range="1:" level="fatal" /> + </stdio> + + <help> +This is a Pydoop-based distributed text file compression program. + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make_pathset.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,58 @@ +<tool id="hadoop_galaxy_make_pathset" name="Make Pathset" version="0.1.0"> + <description>Create a pathset for a set of files</description> + <requirements> + <requirement type="package" version="0.11">pydoop</requirement> + <requirement type="package" version="0.1.1">hadoop-galaxy</requirement> + </requirements> + + <command> + make_pathset + #if str($paths.source) == 'tool_input' + --force-local --data-format $paths.datapaths.ext "$output_path" "$paths.datapaths" + #elif str($paths.source) == 'text_box' + #if str($paths.filesystem_select) == "local_fs" + --force-local + #end if + #if $paths.data_format + --data-format "$paths.data_format" + #end if + "$output_path" "$paths.datapaths" + #else + #raise ValueError("BUG!! unknown paths.source value") + #end if + </command> + + <inputs> + <conditional name="paths"> + <param name="source" type="select" label="Path source"> + <option value="tool_input">Dataset from your history</option> + <option value="text_box">User input</option> + </param> + <when value="tool_input"> + <param name="datapaths" type="data" label="A dataset in any format" /> + </when> + <when value="text_box"> + <param name="filesystem_select" type="select" label="File system type"> + <option value="default_fs">Default</option> + <option value="local_fs">Local FS</option> + </param> + <param name="datapaths" type="text" label="Paths or URIs" size="60"> + <validator type="empty_field" /> + </param> + <param name="data_format" type="text" label="Extension representing data format" size="20" /> + </when> + </conditional> + </inputs> + + <outputs> + <data name="output_path" format="pathset" /> + </outputs> + + <stdio> + <exit_code range="1:" level="fatal" /> + </stdio> + + <help> +Create a pathset for a set of files to be used as input for Hadoop tools. + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/put_dataset.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,43 @@ +<tool id="hadoop_galaxy_put_dataset" name="Put dataset" version="0.1.0"> + <description>Copy data from Galaxy storage to Hadoop storage.</description> + <requirements> + <requirement type="package" version="0.11">pydoop</requirement> + <requirement type="package" version="0.1.1">hadoop-galaxy</requirement> + </requirements> + + <command> + put_dataset + #if $workspace != "" + --hadoop-workspace "$workspace" + #end if + #if $use_distcp + --distcp + #end if + "$input_pathset" "$output_path" + </command> + + <inputs> + <param name="input_pathset" type="data" format="pathset" label="Galaxy pathset" /> + + <param name="workspace" type="text" label="Path to workspace for Hadoop data" + help="The data will be copied to a new directory under this path. The value can also be set through the HADOOP_GALAXY_PUT_DIR environment variable." /> + + <param name="use_distcp" type="boolean" checked="false" label="Use Hadoop distcp2" + help="Use distcp2 if Hadoop can access Galaxy's storage space and you're copying a large dataset." /> + </inputs> + + <outputs> + <data name="output_path" format="pathset" label="Hadoop pathset from $input_pathset.name" /> + </outputs> + + <stdio> + <exit_code range="1:" level="fatal" /> + </stdio> + + <help> + This tools copies data from Galaxy's storage to storage that is suitable for + Hadoop jobs. An example of a use case may be to copy data from the Galaxy server + to HDFS. Whether this tool is required depends on your specific local setup. + </help> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/split_pathset.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,60 @@ +<tool id="hadoop_galaxy_split_pathset" name="Split pathset" version="0.1.0"> + <description>Split a pathset according to a regular expression criteria</description> + <requirements> + <requirement type="package" version="0.11">pydoop</requirement> + <requirement type="package" version="0.1.1">hadoop-galaxy</requirement> + </requirements> + + <command> + split_pathset '$criteria_expr' + #if $anchor_end + --anchor-end + #end if + --expand-levels $expand_levels + $input_pathset $output_true $output_false + </command> + + <inputs> + <param name="criteria_expr" type="text" label="Regular expression criteria"> + <validator type="empty_field" /> + </param> + <param name="anchor_end" type="boolean" + checked="false" + label="Anchor expression and the end of the string (like $)" + /> + <param name="expand_levels" type="integer" + value="0" + label="Expand paths by at least this many levels before applying criteria" + /> + <param name="input_pathset" type="data" format="pathset" label="Input pathset" /> + <param name="match_name" type="text" value="match" label="Name of dataset matching criteria"> + <validator type="empty_field" /> + </param> + <param name="no_match_name" type="text" value="no_match" label="Name of dataset not matching criteria"> + <validator type="empty_field" /> + </param> + </inputs> + + <outputs> + <data name="output_true" type="data" format="pathset" label="$match_name" /> + <data name="output_false" type="data" format="pathset" label="$no_match_name" /> + </outputs> + + <stdio> + <exit_code range="1:" level="fatal" /> + </stdio> + + <help> + Splits a pathset according to a regular expression. + + You can have the tool expand the paths in the pathset by a certain number + of levels prior to testing whether it matches the regular expression. + + + **Note**: you can't use '$' in your regular expression. To anchor the + expression to the end of the path use the checkbox. + + + *Note*: the regular expression must match the path from its beginning. + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_conf.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<toolbox> + <section name="Hadoop-Galaxy" id="hadoop_galaxy"> + <tool file="hadoop_galaxy/make_pathset.xml" /> + <tool file="hadoop_galaxy/put_dataset.xml" /> + <tool file="hadoop_galaxy/cat_paths.xml" /> + <tool file="hadoop_galaxy/split_pathset.xml" /> + <tool file="hadoop_galaxy/dist_text_zipper.xml" /> + </section> +</toolbox>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_dependencies.xml Fri May 30 06:48:47 2014 -0400 @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<tool_dependency> + <package name="pydoop" version="0.11"> + <repository changeset_revision="2055590ae81c" name="package_pydoop_0_11" owner="crs4" prior_installation_required="True" toolshed="http://toolshed.g2.bx.psu.edu" /> + </package> + <package name="hadoop-galaxy" version="0.1.1"> + <install version="1.0"> + <actions> + <action type="shell_command">git clone https://github.com/crs4/hadoop-galaxy/</action> + <action type="shell_command">git reset --hard 0.1.1</action> + <action type="set_environment_for_install"> + <repository changeset_revision="2055590ae81c" name="package_pydoop_0_11" owner="crs4" toolshed="http://toolshed.g2.bx.psu.edu"> + <package name="pydoop" version="0.11" /> + </repository> + </action> + <action type="make_directory">$INSTALL_DIR/lib/python</action> + <action type="shell_command">export PYTHONPATH=$INSTALL_DIR/lib/python:$PYTHONPATH && python setup.py install --prefix=$INSTALL_DIR --install-lib=$INSTALL_DIR/lib/python</action> + <action type="set_environment"> + <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable> + <environment_variable action="prepend_to" name="PYTHONPATH">$INSTALL_DIR/lib/python</environment_variable> + </action> + </actions> + </install> + <readme> + </readme> + </package> +</tool_dependency>