Instead of adding the value of "mapred.reduce.child.java.opts" in mapred.xml to "-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\mdapi" I changed the value of "mapred.child.java.opts" to "-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\mdapi".
I think the reason why this works is because in pseudo-distributed mode each child process of the task tracker has its own jvm and it is better to set the property of child jvm.