Upgrading ES from 2.1.1 to 2.2.0 - no known master node

I'm running a 3 node cluster with version 2.1.1 running on Windows 2012 R2. Tried to install 2.2.0 which was released today. I'm following the instructions here: https://www.elastic.co/guide/en/elasticsearch/reference/2.2/rolling-upgrades.html

Basically, I disable shard allocation, sync flush, then stop the service on 1 node. I use .\service.bat to create a new service for the 2.2.0 directory and start the service. The node never joins the cluster, and gives alot of the following in the logs:

[2016-02-02 13:54:35,311][DEBUG][action.admin.indices.create] [node1] no known master node, scheduling a retry
[2016-02-02 13:55:35,323][DEBUG][action.admin.indices.create] [node1] timed out while retrying [indices:admin/create] after failure (timeout [1m])
[2016-02-02 13:55:35,323][INFO ][rest.suppressed          ] /_bulk Params: {}
ClusterBlockException[blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];[SERVICE_UNAVAILABLE/2/no master];]
	at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedException(ClusterBlocks.java:154)
	at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedRaiseException(ClusterBlocks.java:144)
	at org.elasticsearch.action.bulk.TransportBulkAction.executeBulk(TransportBulkAction.java:212)
	at org.elasticsearch.action.bulk.TransportBulkAction.access$000(TransportBulkAction.java:71)
	at org.elasticsearch.action.bulk.TransportBulkAction$1.onFailure(TransportBulkAction.java:150)
	at org.elasticsearch.action.support.ThreadedActionListener$2.doRun(ThreadedActionListener.java:104)
	at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

My elasticsearch.yml file looks like this:

#
cluster.name: cluster-01
#
node.name: "node1"
#
path.data: c:\path
#
path.logs: c:\path
#
network.host: <Network IP>
#
gateway.recover_after_nodes: 2
#
discovery.zen.ping.unicast.hosts: ["node2", "node3"]
#
discovery.zen.minimum_master_nodes: 2
#
watcher.actions.email.service.account:
  blah
#

I should post my solution for anyone with the same issue. I had to install the ES license on the node before it would join the cluster:

.\plugin.bat install license