apache hadoop plugin #10

Description

Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data.
This charm provides a simplified connection point for client / workload services, such as Apache Hive or Apache Pig, which require access to Apache Hadoop.


Overview

The Apache Hadoop software library is a framework that allows for the
distributed processing of large data sets across clusters of computers
using a simple programming model.

This charm plugs in to a workload charm to provide the
Apache Hadoop 2.4.1
libraries and configuration for the workload to use.

Usage

This charm is intended to be deployed via one of the
apache bundles.
For example:

juju quickstart apache-analytics-sql

This will deploy the Apache Hadoop platform with a workload node
which is running Apache Hive to perform SQL-like queries against your data.

If you wanted to also wanted to be able to analyze your data using Apache Pig,
you could deploy it and attach it to the same plugin:

juju deploy apache-pig pig
juju add-relation plugin pig

Benchmarking

You can perform a terasort benchmark, in order to gauge performance of your environment:

    $ juju action do plugin/0 terasort
    Action queued with id: cbd981e8-3400-4c8f-8df1-c39c55a7eae6
    $ juju action fetch --wait 0 cbd981e8-3400-4c8f-8df1-c39c55a7eae6
    results:
      meta:
        composite:
          direction: asc
          units: ms
          value: "206676"
      results:
        raw: '{"Total vcore-seconds taken by all map tasks": "439783", "Spilled Records":
          "30000000", "WRONG_LENGTH": "0", "Reduce output records": "10000000", "HDFS:
          Number of bytes read": "1000001024", "Total vcore-seconds taken by all reduce
          tasks": "50275", "Reduce input groups": "10000000", "Shuffled Maps ": "8", "FILE:
          Number of bytes written": "3128977482", "Input split bytes": "1024", "Total
          time spent by all reduce tasks (ms)": "50275", "FILE: Number of large read operations":
          "0", "Bytes Read": "1000000000", "Virtual memory (bytes) snapshot": "7688794112",
          "Launched map tasks": "8", "GC time elapsed (ms)": "11656", "Bytes Written":
          "1000000000", "FILE: Number of read operations": "0", "HDFS: Number of write
          operations": "2", "Total megabyte-seconds taken by all reduce tasks": "51481600",
          "Combine output records": "0", "HDFS: Number of bytes written": "1000000000",
          "Total time spent by all map tasks (ms)": "439783", "Map output records": "10000000",
          "Physical memory (bytes) snapshot": "2329722880", "FILE: Number of write operations":
          "0", "Launched reduce tasks": "1", "Reduce input records": "10000000", "Total
          megabyte-seconds taken by all map tasks": "450337792", "WRONG_REDUCE": "0",
          "HDFS: Number of read operations": "27", "Reduce shuffle bytes": "1040000048",
          "Map input records": "10000000", "Map output materialized bytes": "1040000048",
          "CPU time spent (ms)": "195020", "Merged Map outputs": "8", "FILE: Number of
          bytes read": "2080000144", "Failed Shuffles": "0", "Total time spent by all
          maps in occupied slots (ms)": "439783", "WRONG_MAP": "0", "BAD_ID": "0", "Rack-local
          map tasks": "2", "IO_ERROR": "0", "Combine input records": "0", "Map output
          bytes": "1020000000", "CONNECTION": "0", "HDFS: Number of large read operations":
          "0", "Total committed heap usage (bytes)": "1755840512", "Data-local map tasks":
          "6", "Total time spent by all reduces in occupied slots (ms)": "50275"}'
    status: completed
    timing:
      completed: 2015-05-28 20:55:50 +0000 UTC
      enqueued: 2015-05-28 20:53:41 +0000 UTC
      started: 2015-05-28 20:53:44 +0000 UTC

Deploying in Network-Restricted Environments

The Apache Hadoop charms can be deployed in environments with limited network
access. To deploy in this environment, you will need a local mirror to serve
the packages and resources required by these charms.

Mirroring Packages

You can setup a local mirror for apt packages using squid-deb-proxy.
For instructions on configuring juju to use this, see the
Juju Proxy Documentation.

Mirroring Resources

In addition to apt packages, the Apache Hadoop charms require a few binary
resources, which are normally hosted on Launchpad. If access to Launchpad
is not available, the jujuresources library makes it easy to create a mirror
of these resources:

sudo pip install jujuresources
juju-resources fetch --all /path/to/resources.yaml -d /tmp/resources
juju-resources serve -d /tmp/resources

This will fetch all of the resources needed by this charm and serve them via a
simple HTTP server. The output from juju-resources serve will give you a
URL that you can set as the resources_mirror config option for this charm.
Setting this option will cause all resources required by this charm to be
downloaded from the configured URL.

You can fetch the resources for all of the Apache Hadoop charms
(apache-hadoop-hdfs-master, apache-hadoop-yarn-master,
apache-hadoop-compute-slave, apache-hadoop-plugin, etc) into a single
directory and serve them all with a single juju-resources serve instance.

Contact Information

Hadoop

Configuration

resources_mirror
(string) URL from which to fetch resources (e.g., Hadoop binaries) instead of Launchpad.