First of all try to avoid such long xpath's, the page might change dynamically causing your test case to fail. You can make use of attributes like id,name,class..etc to get to them directly.
If you trying to learn, facebook or google is not a good place to start with,because they have dynamic id's (id's change everytime the page is loaded).
But in the above case,this should work :
driver.findElement(By.xpath("//button[contains(., 'Download Archive')]")).click();
or
You can use Implicit or Explicit Wait to wait for elements visibility,
new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//button[contains(., 'Download Archive')]"))).click();