HDFSPROXY is an HTTPS proxy server that exposes the same HSFTP interface as a 
real cluster. It authenticates users via user certificates and enforce access 
control based on configuration files.

Starting up an HDFSPROXY server is similar to starting up an HDFS cluster. 
Simply run "hdfsproxy" shell command. The main configuration file is 
hdfsproxy-default.xml, which should be on the classpath. hdfsproxy-env.sh 
can be used to set up environmental variables. In particular, JAVA_HOME should 
be set. Additional configuration files include user-certs.xml, 
user-permissions.xml and ssl-server.xml, which are used to specify allowed user
certs, allowed directories/files, and ssl keystore information for the proxy, 
respectively. The location of these files can be specified in 
hdfsproxy-default.xml. Environmental variable HDFSPROXY_CONF_DIR can be used to
point to the directory where these configuration files are located. The 
configuration files of the proxied HDFS cluster should also be available on the
classpath (hdfs-default.xml and hdfs-site.xml).

Mirroring those used in HDFS, a few shell scripts are provided to start and 
stop a group of proxy servers. The hosts to run hdfsproxy on are specified in 
hdfsproxy-hosts file, one host per line. All hdfsproxy servers are stateless 
and run independently from each other. Simple load balancing can be set up by 
mapping all hdfsproxy server IP addresses to a single hostname. Users should 
use that hostname to access the proxy. If an IP address look up for that 
hostname returns more than one IP addresses, an HFTP/HSFTP client will randomly
pick one to use.

Command "hdfsproxy -reloadPermFiles" can be used to trigger reloading of 
user-certs.xml and user-permissions.xml files on all proxy servers listed in 
the hdfsproxy-hosts file. Similarly, "hdfsproxy -clearUgiCache" command can be 
used to clear the UGI caches on all proxy servers.
