Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Distributing Data Nodes Across Multiple Data Centers

Has anyone tried to test the performance of data nodes across multiple data centers? Especially over networks with small pipes. I can't seem to find too much information on it and the information I have found is either old (circa 2010) or proprietary (seems like DataStax has something). I know Hadoop supports rack awareness but like I said I haven't seen any documentation for tuning a system for multiple data centers.

like image 803
Matt E Avatar asked Feb 11 '13 20:02

Matt E


People also ask

How are two data centers connected to each other?

Data Center Interconnect (DCI) technology connects two or more data centers together over short, medium, or long distances using high-speed packet-optical connectivity. Data Centers house compute and storage resources for applications, data, and content.

What is data center clustering?

Server clustering refers to a group of servers working together on one system to provide users with higher availability. These clusters are used to reduce downtime and outages by allowing another server to take over in an outage event. Here's how it works. A group of servers are connected to a single system.

What is multi data center?

ORS 8.1. 3 and later provides further deployment possibilities and configurations that are supportive of multiple Data Center architectures. A Data Center is a facility used to house computer systems and associated components, such as telecommunications and storage systems.

Does Cassandra supports multiple datacenters out of the box?

Cassandra is designed as a distributed system, for deployment of large numbers of nodes across multiple data centers.


1 Answers

I've tried it with a 12 x DataNode cluster arranged in a 2:1 ratio split between two data centers roughly 120 miles apart. Latency between data centres was ~4ms across 2 x 1GbE pipes.

2 racks were configured in site A, 1 rack configured in site B. Each "rack" had 4 machines in it. We were basically testing Site B as a 'DR' site. Replication factor was set to 3.

Long story short, it works, but the performance was really, really bad. You definitely have to use compression on your source, map and reduce outputs in order to shrink your write I/O, and if the links between sites are used for anything else, you will get timeouts while transferring data. TCP windowing would effectively limited our transfer to around 4MBps, instead of a potential 100MBps+ on a 1GbE line.

Save yourself the headache and just use distcp jobs to replicate data!

like image 117
JamCon Avatar answered Oct 17 '22 07:10

JamCon