Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data.
This charm manages both the storage node (DataNode) for HDFS and the compute node (NodeManager) for Yarn.
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 combined slave node running the NodeManager
and DataNode components of the Apache Bigtop platform
to provide YARN compute and HDFS storage resources.
This charm is intended to be deployed via one of the
apache bigtop bundles.
juju quickstart bigtop-processing-mapreduce
This will deploy the Apache Bigtop platform with a workload node
preconfigured to work with the cluster.
You can also manually load and run map-reduce jobs via the plugin charm
included in the bundles linked above:
juju scp my-job.jar plugin/0:
juju ssh plugin/0
hadoop jar my-job.jar
Apache Bigtop charms provide extended status reporting to indicate when they
juju status --format=tabular
This is particularly useful when combined with watch to track the on-going
progress of the deployment:
watch -n 0.5 juju status --format=tabular
The message for each unit will provide information about that unit's state.
Once they all indicate that they are ready, you can perform a "smoke test"
to verify HDFS or YARN services are working as expected. Trigger the
smoke-test action by:
juju action do namenode/0 smoke-test
juju action do resourcemanager/0 smoke-test
After a few seconds or so, you can check the results of the smoke test:
juju action status
You will see status: completed if the smoke test was successful, or
status: failed if it was not. You can get more information on why it failed
juju action fetch <action-id>
The slave node is the "workhorse" of the Hadoop environment. To scale your
cluster performance and storage capabilities, you can simply add more slave
units. For example, to add three more units:
juju add-unit slave -n 3
Charms can be deployed in environments with limited network access. To deploy
in this environment, you will need a local mirror to serve required 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.