I think it's normal to go thru this stage because young children don't know any other way to express their anger. Children have to be taught this skill. I agree with both of Kimberley's suggestions.
I would like to emphasize being aware of what causes the anger to build up, such as being tired or hungry or having too much stimulation or of several things going wrong from his perspective. And then "fixing" those things, if possible, before the tantrum begins. Besides being sure that he's had enough sleep and enough to eat you can sit with him quietly and perhaps read or watch a video to help him calm himself. Eventually he will do those things with a reminder at first and then on his own.
And to also notice what triggers the anger and trying a different approach. My 3 yo grandson gets extremely angry, yelling, hitting and kicking when his 6 yo sister takes away a toy. I've shown her how to ask to trade a toy. She does this sometimes but usually she is expressing her own anger by taking away a toy. Both of my grandchildren are jealous of the other which creates a lot of anger. When I'm there I sometimes separate the two by having each one sit on either side of me and watching a short video. This calms them down and diverts their attention. Other times I actively get one of them distracted into doing something else.
When my grandson isn't able to stop hitting and kicking when I step in, I do a specific hold taught to me by a therapist. It's a fancy name for sitting down with him while I hold his arms and cross my legs over his legs and tell him I'll let go when he's able to calm down. This increases his anger at first and then he'll start to cry and I let go of him even if he's still struggling because the tears, in my experience, indicate to me that he's thru with the kicking and hitting. If I've misjudged I hold him again. It's not easy but it does show him that I will not let him continue hurting someone. If I don't hold him in that manner he continues to hit and kick me.
Just as often, once I intervene by separating the two kids, he runs to another room and cries. I've learned to leave him alone until he calms down. If I walk into the room he usually tries to hit or kick me again. The crying releases the angry energy which is driving him.
When my granddaughter was throwing temper tantrums I sat down a few feet from her and waited. In a short time she would crawl into my lap and cry. Each kid is different and we have to experiement until we find something that works.
In summary, when he's angry I first try to redirect his energy. Hitting a pillow or punch bag might help. Or giving him some personal attention such as sitting down with him to do something quietly. If that doesn't work I hold him
Also he doesn't get angry as often if I'm able to give him choices instead of only saying no. "You can put your shoes on or let me" sort of thing. And I try not to ask him too quickly to change what he's doing. When I know he's tired I put my arms around him and tell him it's time to do such and such and give him time to "get the idea."
Now, usually when I'm with my grandchildren I only have responsibility for them. As a mother, who has a zillion other things to do you probably can't do this all the time and maybe not at all.
But maybe this will give you an idea of something that will work for you.
And I think some of this is just containing the anger and not helping him learn another way of expressing it.
I talked often with my granddaughter about how she felt. Most conversations were indirect. I'd pick up on something she said and add some "philosphy" to it. This only worked when she wanted to talk. She's very verbal and so this seems to be working. I think the opportunity for her to verbalize feelings by talking about what is of concern to her helps her to lessen the angry feelings. She does not necessarily say how she felt tho that helps too.
I also verbalize for both of my grandchildren how I think they are feeling early in our interaction. ie; you must be angry. I would be angry if that happened to me. Or I know you're angry but we still have to do such and such and give them some time to regain control. Compassion works much better than irritation or even anger in return.
My grandson is not verbal at all. He's getting speech therapy and may need professional help with his behavior. I think not being able to talk is part of his anger. But my granddaughter is learning verbal ways of dealing with her anger and rarely hits or kicks. When she does it is with her brother. Her way of showing anger is to not do as requested, to rebel. That requires a different set of skills from me.
I get frustrated and angry with their behavior. I have an easier time staying calm since I've been able to really believe that I've not been a poor mother and grandmother; that this is not my fault. I told myself that it wasn't my faulth and that I didn't cause this with my daughter but when I was honest with myself I didn't really believe that. It's just been in the last year that I realized that I was OK and they will be too. Relaxing about feeling so much responsibility has helped me do a better job.