BDD supports many different cluster configurations. The following sections describe three suitable for demonstration, development, and production environments, and their possible variations.
Note that you aren't limited to these examples and can install in any configuration suited to your resources and data processing needs.
You can install BDD in a demo environment running on a single physical or virtual machine. This configuration can only handle a limited amount of data, so it is recommended solely for demonstrating the product's functionality with a small sample database.
In a single-node deployment, all BDD and required Hadoop components are hosted on the same node, and the Dgraph databases are stored on the local filesystem.
For single-node installations, BDD provides a QuickStart option that enables you to install quickly with default configuration. For more information, see QuickStart Installation.
You can install BDD in a development environment running on two nodes. This configuration can handle a slightly larger database than a single-node deployment, but still has limited processing capacity and doesn't provide high availability for any BDD components.
In a two-node configuration, all Hadoop components and the Data Processing libraries are hosted on one node, while the remaining BDD components are hosted on the other. Although the diagram above shows the Dgraph databases stored on the local file system, they could also be stored in HDFS on Node 1.
For a production environment, BDD should be installed on a multi-node cluster. The size of your cluster depends on the amount of data you plan on processing and the number of end users expected to be querying that data at any given time; however, a minimum of six nodes ensures high availability for all components.
A typical BDD cluster will consist of nodes that look similar to the following:
One way to configure your BDD cluster is to co-locate different components on the same nodes. This is a more efficient use of your hardware, since you don't have to devote an entire node to any specific component.
Be aware, however, that the co-located components will compete for memory and other resources, which can have a negative impact on performance. The decision to host different components on the same nodes depends on your site's production requirements and your hardware's capacity.