I think you could probably make mahout work for your problem. I haven't done it myself, so can't give you specifics, but here's two approaches:
1) train a binary classifier on each of the N possibilities: a or !a, b or !b, c or !c, d or !d..., then pick the highest probability from the N results to get the assignment. Typicially classifiers output probabilities instead of True/False
2) check this out for multi-label classification using mahout: https://medium.com/p/4ea08a4662ab