This document describes research on computing tall-and-skinny QR decompositions in MapReduce frameworks. It discusses past issues with numerical stability in prior approaches and presents four improved methods: 1) An algorithm to accurately compute R; 2) A fast algorithm to make Q numerically orthogonal; 3) A multi-pass algorithm to make Q orthogonal in most cases; 4) A direct algorithm to make Q orthogonal in all cases. It also covers techniques like iterative refinement and sampling rows to improve the orthogonality of Q when computing the QR decomposition of large matrices distributed across systems.