Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data. This charm manages the HDFS Secondary NameNode, which manages checkpoints for the HDFS master.
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 deploys a node running the SecondaryNameNode component Apache Hadoop 2.4.1, which periodically consolidates and checkpoints the work done by the NameNode component for efficiency and improved recovery in the case of a failure of the NameNode.
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 Apache Hive available to perform SQL-like queries against your data.
You can also manually load and run map-reduce jobs via the plugin charm included in the bigdata bundles linked above:
juju scp my-job.jar plugin/0: juju ssh plugin/0 hadoop jar my-job.jar
This charm supports monitoring via Ganglia. To enable monitoring, you must do both of the following (the order does not matter):
- Add a relation to the Ganglia charm via the
- Enable the
You must also enable metrics on hdfs-master to initiate the restart of the SecondaryNameNode component for it to begin collecting metrics.
juju add-relation secondary-namenode ganglia:master juju add-relation hdfs-master ganglia:master juju set secondary-namenode ganglia_metrics=true juju set hdfs-master ganglia_metrics=true
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.
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.
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-plugin, etc) into a single
directory and serve them all with a single
juju-resources serve instance.
- (int) The default block size for new files (default to 64MB). Increase this in larger deployments for better large data set performance.
- (boolean) Enable metrics using Ganglia. Note that enabling this option will have no effect if the service is not related to a ganglia service via the ganglia:master relation. Enabling this option also will *not* restart the SecondaryNameNode component, so it will also be necessary to enable metrics on the hdfs-master service. See the README for more information.
- (string) URL from which to fetch resources (e.g., Hadoop binaries) instead of Launchpad.