1. A method for managing deduplication of data comprising: receiving, via a network, first data to be backed up; separating the first data to be backed up into segments; generating, using at least one computer processor, a fingerprint for each of the segments; sampling n-bits of the fingerprints; writing the sampled fingerprints to a plurality of hook tables arranged in a plurality of computing nodes, wherein the plurality of computing nodes respectively contain at least one of the plurality of hook tables, and wherein sizes of the n-bits of each of the sampled fingerprints are based on sizes of the hook tables to which the sampled fingerprints are written; receiving a lookup set of fingerprints corresponding to second data to be backed up; extracting a portion of the fingerprints corresponding to the second data; comparing the extracted portion of the fingerprints corresponding to the second data to entries of the plurality of hook tables to determine which of the plurality of hook tables has a highest number of matches; determining whether any of the fingerprints corresponding to the second data do not exist in memory based on the comparison using the respective extracted portions; filtering the fingerprints corresponding to the second data that are determined not to exist and transmitting remaining fingerprints corresponding to the second data to the computing node having the hook table with the highest number of matches so that a second comparison is made using the remaining fingerprints to determine which of the remaining fingerprints exist in the fingerprints generated from the first data; and backing up segments associated with the second data that do not exist in the first data.