~bigdata-dev/charms/trusty/apache-hadoop-plugin/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
## 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](http://hadoop.apache.org/docs/r2.4.1/)
libraries and configuration for the workload to use.

## Usage

This charm is intended to be deployed via one of the
[apache bundles](https://jujucharms.com/u/bigdata-charmers/#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](https://juju.ubuntu.com/docs/howto-proxies.html).


### 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

- <bigdata@lists.ubuntu.com>


## Hadoop

- [Apache Hadoop](http://hadoop.apache.org/) home page
- [Apache Hadoop bug trackers](http://hadoop.apache.org/issue_tracking.html)
- [Apache Hadoop mailing lists](http://hadoop.apache.org/mailing_lists.html)
- [Apache Hadoop Juju Charm](http://jujucharms.com/?text=hadoop)