"Tener" is a verb that means "to own", "to have" or "to possess".
"Haber" is mainly used for indicating something is at a place, similar to "there is/are". Then, it is also used as an auxiliary verb for compound tenses, similar like when you use "have + verb participle.
Both can be used to indicate you need / have to do something, but the form "hay" of haber is impersonal.
I have two children. = Tengo dos niños (hijos).
I have raised two children. = He críado a dos niños (hijos) (he = form of haber)
There are two children. = Hay dos niños. (hay = form of haber)
We must leave now = Tenemos que irnos ya (subject: we) = Hay que irse ya (subject: impersonal)