We present the first fully polynomial approximation schemes for the maximum weighted (uncapacitated or capacitated) b-Matching problem for nonbipartite graphs that run in time (near) linear in the number of edges, that is, given any δ > 0 the algorithm produces a (1−δ) approximation in O(m poly(δ −1 , log n)) time. We provide fractional solutions for the standard linear programming formulations for these problems and subsequently also provide fully polynomial (near) linear time approximation schemes for rounding the fractional solutions.Through these problems as a vehicle, we also present several ideas in the context of solving linear programs approximately using fast primal-dual algorithms. First, we show that approximation algorithms can be used to reduce the width of the formulation, and as a consequence we induce faster convergence. Second, even though the dual of these problems have exponentially many variables and an efficient exact computation of dual weights is infeasible, we can efficiently compute and use a sparse approximation of the dual weights using a combination of (i) adding perturbation to the constraints of the polytope and (ii) amplification followed by thresholding of the dual weights.These algorithms also have the advantage that they use O(n poly(δ −1 , log n)) storage space and only make O(δ −4 log 2 (1/δ) log n) (or better) passes over a read only list of edges. These algorithms therefore can be run in the semi-streaming model and serve as exemplars where algorithms and ideas developed for the streaming model gives us algorithms for combinatorial optimization problems that were not known in absence of the streaming constraints. *