hawq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bhuvnesh2...@apache.org
Subject [05/48] incubator-hawq git commit: HAWQ-618. Import libhdfs3 library for internal management and LICENSE modified
Date Mon, 04 Apr 2016 05:09:09 GMT
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/function-secure.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/function-secure.xml b/depends/libhdfs3/test/data/function-secure.xml
new file mode 100644
index 0000000..ed8921d
--- /dev/null
+++ b/depends/libhdfs3/test/data/function-secure.xml
@@ -0,0 +1,43 @@
+<configuration>
+
+	<property>
+		<name>dfs.default.uri</name>
+		<value>hdfs://localhost:9000</value>
+	</property>
+
+	<property>
+		<name>hadoop.security.authentication</name>
+		<value>kerberos</value>
+	</property>
+
+	<property>
+		<name>dfs.nameservices</name>
+		<value>gphd-cluster</value>
+	</property>
+	
+	<property>
+		<name>dfs.ha.namenodes.gphd-cluster</name>
+		<value>nn1,nn2</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.gphd-cluster.nn1</name>
+		<value>smdw:9000</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.gphd-cluster.nn2</name>
+		<value>mdw:9000</value>
+	</property>
+
+	<property>
+		<name>dfs.namenode.http-address.gphd-cluster.nn1</name>
+		<value>smdw:50070</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.http-address.gphd-cluster.nn2</name>
+		<value>mdw:50070</value>
+	</property>
+	
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/function-secure.xml.sample
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/function-secure.xml.sample b/depends/libhdfs3/test/data/function-secure.xml.sample
new file mode 100644
index 0000000..ed8921d
--- /dev/null
+++ b/depends/libhdfs3/test/data/function-secure.xml.sample
@@ -0,0 +1,43 @@
+<configuration>
+
+	<property>
+		<name>dfs.default.uri</name>
+		<value>hdfs://localhost:9000</value>
+	</property>
+
+	<property>
+		<name>hadoop.security.authentication</name>
+		<value>kerberos</value>
+	</property>
+
+	<property>
+		<name>dfs.nameservices</name>
+		<value>gphd-cluster</value>
+	</property>
+	
+	<property>
+		<name>dfs.ha.namenodes.gphd-cluster</name>
+		<value>nn1,nn2</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.gphd-cluster.nn1</name>
+		<value>smdw:9000</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.gphd-cluster.nn2</name>
+		<value>mdw:9000</value>
+	</property>
+
+	<property>
+		<name>dfs.namenode.http-address.gphd-cluster.nn1</name>
+		<value>smdw:50070</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.http-address.gphd-cluster.nn2</name>
+		<value>mdw:50070</value>
+	</property>
+	
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/function-test.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/function-test.xml b/depends/libhdfs3/test/data/function-test.xml
new file mode 100644
index 0000000..d6800b9
--- /dev/null
+++ b/depends/libhdfs3/test/data/function-test.xml
@@ -0,0 +1,117 @@
+<configuration>
+
+	<property>
+		<name>dfs.default.uri</name>
+		<value>hdfs://localhost:9000</value>
+	</property>
+
+	<property>
+		<name>hadoop.security.authentication</name>
+		<value>simple</value>
+	</property>
+
+	<property>
+		<name>dfs.nameservices</name>
+		<value>phdcluster</value>
+	</property>
+
+	<property>
+		<name>dfs.default.replica</name>
+		<value>3</value>
+	</property>
+
+	<property>
+		<name>dfs.client.log.severity</name>
+		<value>INFO</value>
+	</property>
+
+	<property>
+		<name>dfs.client.read.shortcircuit</name>
+		<value>true</value>
+	</property>
+
+	<property>
+		<name>input.localread.blockinfo.cachesize</name>
+		<value>10</value>
+	</property>
+
+	<property>
+		<name>dfs.client.read.shortcircuit.streams.cache.size</name>
+		<value>10</value>
+	</property>
+
+	<property>
+		<name>dfs.client.use.legacy.blockreader.local</name>
+		<value>true</value>
+	</property>
+
+	<property>
+		<name>output.replace-datanode-on-failure</name>
+		<value>false</value>
+	</property>
+
+    <property>
+		<name>input.localread.mappedfile</name>
+		<value>true</value>
+    </property>
+
+	<property>
+		<name>dfs.domain.socket.path</name>
+		<value>/var/lib/hadoop-hdfs/hdfs_domain__PORT</value>
+	</property>
+
+	<property>
+		<name>dfs.ha.namenodes.phdcluster</name>
+		<value>nn1,nn2</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.phdcluster.nn1</name>
+		<value>mdw:9000</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.phdcluster.nn2</name>
+		<value>smdw:9000</value>
+	</property>
+
+	<property>
+		<name>dfs.namenode.http-address.phdcluster.nn1</name>
+		<value>mdw:50070</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.http-address.phdcluster.nn2</name>
+		<value>smdw:50070</value>
+	</property>
+	
+	<property>
+		<name>rpc.socekt.linger.timeout</name>
+		<value>20</value>
+	</property>
+	
+	<property>
+		<name>rpc.max.idle</name>
+		<value>100</value>
+	</property>
+	
+	<property>
+		<name>test.get.conf</name>
+		<value>success</value>
+	</property>
+
+	<property>
+		<name>test.get.confint32</name>
+		<value>10</value>
+	</property>
+	
+	<property>
+		<name>dfs.client.socketcache.expiryMsec</name>
+		<value>3000</value>
+	</property>
+	
+	<property>
+		<name>dfs.client.socketcache.capacity</name>
+		<value>1</value>
+	</property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/function-test.xml.sample
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/function-test.xml.sample b/depends/libhdfs3/test/data/function-test.xml.sample
new file mode 100644
index 0000000..df8de7c
--- /dev/null
+++ b/depends/libhdfs3/test/data/function-test.xml.sample
@@ -0,0 +1,107 @@
+<configuration>
+
+	<property>
+		<name>dfs.default.uri</name>
+		<value>hdfs://localhost:9000</value>
+	</property>
+
+	<property>
+		<name>hadoop.security.authentication</name>
+		<value>simple</value>
+	</property>
+
+	<property>
+		<name>dfs.nameservices</name>
+		<value>phdcluster</value>
+	</property>
+
+	<property>
+		<name>dfs.default.replica</name>
+		<value>3</value>
+	</property>
+
+	<property>
+		<name>dfs.client.log.severity</name>
+		<value>INFO</value>
+	</property>
+
+	<property>
+		<name>dfs.client.read.shortcircuit</name>
+		<value>true</value>
+	</property>
+
+	<property>
+		<name>input.localread.blockinfo.cachesize</name>
+		<value>10</value>
+	</property>
+
+	<property>
+		<name>dfs.client.read.shortcircuit.streams.cache.size</name>
+		<value>10</value>
+	</property>
+
+	<property>
+		<name>dfs.client.use.legacy.blockreader.local</name>
+		<value>false</value>
+	</property>
+
+	<property>
+		<name>output.replace-datanode-on-failure</name>
+		<value>false</value>
+	</property>
+
+    <property>
+		<name>input.localread.mappedfile</name>
+		<value>true</value>
+    </property>
+
+	<property>
+		<name>dfs.domain.socket.path</name>
+		<value>/var/lib/hadoop-hdfs/hdfs_domain__PORT</value>
+	</property>
+
+	<property>
+		<name>dfs.ha.namenodes.phdcluster</name>
+		<value>nn1,nn2</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.phdcluster.nn1</name>
+		<value>mdw:9000</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.rpc-address.phdcluster.nn2</name>
+		<value>smdw:9000</value>
+	</property>
+
+	<property>
+		<name>dfs.namenode.http-address.phdcluster.nn1</name>
+		<value>mdw:50070</value>
+	</property>
+	
+	<property>
+		<name>dfs.namenode.http-address.phdcluster.nn2</name>
+		<value>smdw:50070</value>
+	</property>
+	
+	<property>
+		<name>rpc.socekt.linger.timeout</name>
+		<value>20</value>
+	</property>
+	
+	<property>
+		<name>rpc.max.idle</name>
+		<value>100</value>
+	</property>
+	
+	<property>
+		<name>test.get.conf</name>
+		<value>success</value>
+	</property>
+
+	<property>
+		<name>test.get.confint32</name>
+		<value>10</value>
+	</property>
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/hdfs-default.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/hdfs-default.xml b/depends/libhdfs3/test/data/hdfs-default.xml
new file mode 100644
index 0000000..76f5d7a
--- /dev/null
+++ b/depends/libhdfs3/test/data/hdfs-default.xml
@@ -0,0 +1,1136 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	You under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+
+<!-- Do not modify this file directly. Instead, copy entries that you -->
+<!-- wish to modify from this file into hdfs-site.xml and change them -->
+<!-- there. If hdfs-site.xml does not already exist, create it. -->
+
+<configuration>
+
+	<property>
+		<name>hadoop.hdfs.configuration.version</name>
+		<value>1</value>
+		<description>version of this configuration file</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.logging.level</name>
+		<value>info</value>
+		<description>
+			The logging level for dfs namenode. Other values are "dir" (trace
+			namespace mutations), "block" (trace block under/over replications
+			and block creations/deletions), or "all".
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.secondary.http-address</name>
+		<value>0.0.0.0:50090</value>
+		<description>
+			The secondary namenode http server address and port.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.address</name>
+		<value>0.0.0.0:50010</value>
+		<description>
+			The datanode server address and port for data transfer.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.http.address</name>
+		<value>0.0.0.0:50075</value>
+		<description>
+			The datanode http server address and port.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.ipc.address</name>
+		<value>0.0.0.0:50020</value>
+		<description>
+			The datanode ipc server address and port.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.handler.count</name>
+		<value>10</value>
+		<description>The number of server threads for the datanode.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.http-address</name>
+		<value>0.0.0.0:50070</value>
+		<description>
+			The address and the base port where the dfs namenode web ui will listen
+			on.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.https.enable</name>
+		<value>false</value>
+		<description>Decide if HTTPS(SSL) is supported on HDFS
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.https.need-auth</name>
+		<value>false</value>
+		<description>Whether SSL client certificate authentication is required
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.https.server.keystore.resource</name>
+		<value>ssl-server.xml</value>
+		<description>Resource file from which ssl server keystore
+			information will be extracted
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.https.keystore.resource</name>
+		<value>ssl-client.xml</value>
+		<description>Resource file from which ssl client keystore
+			information will be extracted
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.https.address</name>
+		<value>0.0.0.0:50475</value>
+		<description>The datanode secure http server address and port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.https-address</name>
+		<value>0.0.0.0:50470</value>
+		<description>The namenode secure http server address and port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.dns.interface</name>
+		<value>default</value>
+		<description>The name of the Network Interface from which a data node
+			should
+			report its IP address.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.dns.nameserver</name>
+		<value>default</value>
+		<description>The host name or IP address of the name server (DNS)
+			which a DataNode should use to determine the host name used by the
+			NameNode for communication and display purposes.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.backup.address</name>
+		<value>0.0.0.0:50100</value>
+		<description>
+			The backup node server address and port.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.backup.http-address</name>
+		<value>0.0.0.0:50105</value>
+		<description>
+			The backup node http server address and port.
+			If the port is 0 then the server will start on a free port.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.replication.considerLoad</name>
+		<value>true</value>
+		<description>Decide if chooseTarget considers the target's load or not
+		</description>
+	</property>
+	<property>
+		<name>dfs.default.chunk.view.size</name>
+		<value>32768</value>
+		<description>The number of bytes to view for a file on the browser.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.du.reserved</name>
+		<value>0</value>
+		<description>Reserved space in bytes per volume. Always leave this
+			much space free for non dfs use.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.name.dir</name>
+		<value>file://${hadoop.tmp.dir}/dfs/name</value>
+		<description>Determines where on the local filesystem the DFS name
+			node
+			should store the name table(fsimage). If this is a comma-delimited list
+			of directories then the name table is replicated in all of the
+			directories, for redundancy.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.name.dir.restore</name>
+		<value>false</value>
+		<description>Set to true to enable NameNode to attempt recovering a
+			previously failed dfs.namenode.name.dir. When enabled, a recovery of
+			any
+			failed directory is attempted during checkpoint.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.fs-limits.max-component-length</name>
+		<value>0</value>
+		<description>Defines the maximum number of characters in each
+			component
+			of a path. A value of 0 will disable the check.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.fs-limits.max-directory-items</name>
+		<value>0</value>
+		<description>Defines the maximum number of items that a directory may
+			contain. A value of 0 will disable the check.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.edits.dir</name>
+		<value>${dfs.namenode.name.dir}</value>
+		<description>Determines where on the local filesystem the DFS name
+			node
+			should store the transaction (edits) file. If this is a comma-delimited
+			list
+			of directories then the transaction file is replicated in all of the
+			directories, for redundancy. Default value is same as
+			dfs.namenode.name.dir
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.shared.edits.dir</name>
+		<value></value>
+		<description>A directory on shared storage between the multiple
+			namenodes
+			in an HA cluster. This directory will be written by the active and read
+			by the standby in order to keep the namespaces synchronized. This
+			directory
+			does not need to be listed in dfs.namenode.edits.dir above. It should be
+			left empty in a non-HA cluster.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.permissions.enabled</name>
+		<value>true</value>
+		<description>
+			If "true", enable permission checking in HDFS.
+			If "false", permission checking is turned off,
+			but all other behavior is unchanged.
+			Switching from one parameter value to the other does not change the mode,
+			owner or group of files or directories.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.permissions.superusergroup</name>
+		<value>supergroup</value>
+		<description>The name of the group of super-users.</description>
+	</property>
+	<!-- <property> <name>dfs.cluster.administrators</name> <value>ACL for the 
+		admins</value> <description>This configuration is used to control who can 
+		access the default servlets in the namenode, etc. </description> </property> -->
+
+	<property>
+		<name>dfs.block.access.token.enable</name>
+		<value>false</value>
+		<description>
+			If "true", access tokens are used as capabilities for accessing
+			datanodes.
+			If "false", no access tokens are checked on accessing datanodes.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.block.access.key.update.interval</name>
+		<value>600</value>
+		<description>
+			Interval in minutes at which namenode updates its access keys.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.block.access.token.lifetime</name>
+		<value>600</value>
+		<description>The lifetime of access tokens in minutes.</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.data.dir</name>
+		<value>file://${hadoop.tmp.dir}/dfs/data</value>
+		<description>Determines where on the local filesystem an DFS data node
+			should store its blocks. If this is a comma-delimited
+			list of directories, then data will be stored in all named
+			directories, typically on different devices.
+			Directories that do not exist are ignored.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.data.dir.perm</name>
+		<value>700</value>
+		<description>Permissions for the directories on on the local
+			filesystem where
+			the DFS data node store its blocks. The permissions can either be octal
+			or
+			symbolic.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.replication</name>
+		<value>1</value>
+		<description>Default block replication.
+			The actual number of replications can be specified when the file is
+			created.
+			The default is used if replication is not specified in create time.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.replication.max</name>
+		<value>512</value>
+		<description>Maximal block replication.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.replication.min</name>
+		<value>1</value>
+		<description>Minimal block replication.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.blocksize</name>
+		<value>67108864</value>
+		<description>
+			The default block size for new files, in bytes.
+			You can use the following suffix (case insensitive):
+			k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such
+			as 128k, 512m, 1g, etc.),
+			Or provide complete size in bytes (such as 134217728 for 128 MB).
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.block.write.retries</name>
+		<value>3</value>
+		<description>The number of retries for writing blocks to the data
+			nodes,
+			before we signal failure to the application.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
+		<value>true</value>
+		<description>
+			If there is a datanode/network failure in the write pipeline,
+			DFSClient will try to remove the failed datanode from the pipeline
+			and then continue writing with the remaining datanodes. As a result,
+			the number of datanodes in the pipeline is decreased. The feature is
+			to add new datanodes to the pipeline.
+
+			This is a site-wide property to enable/disable the feature.
+
+			When the cluster size is extremely small, e.g. 3 nodes or less, cluster
+			administrators may want to set the policy to NEVER in the default
+			configuration file or disable this feature. Otherwise, users may
+			experience an unusually high rate of pipeline failures since it is
+			impossible to find new datanodes for replacement.
+
+			See also dfs.client.block.write.replace-datanode-on-failure.policy
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
+		<value>DEFAULT</value>
+		<description>
+			This property is used only if the value of
+			dfs.client.block.write.replace-datanode-on-failure.enable is true.
+
+			ALWAYS: always add a new datanode when an existing datanode is
+			removed.
+
+			NEVER: never add a new datanode.
+
+			DEFAULT:
+			Let r be the replication number.
+			Let n be the number of existing datanodes.
+			Add a new datanode only if r is greater than or equal to 3 and either
+			(1) floor(r/2) is greater than or equal to n; or
+			(2) r is greater than n and the block is hflushed/appended.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.blockreport.intervalMsec</name>
+		<value>21600000</value>
+		<description>Determines block reporting interval in milliseconds.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.blockreport.initialDelay</name>
+		<value>0</value>
+		<description>Delay for first block report in seconds.</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.directoryscan.interval</name>
+		<value>21600</value>
+		<description>Interval in seconds for Datanode to scan data directories
+			and
+			reconcile the difference between blocks in memory and on the disk.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.directoryscan.threads</name>
+		<value>1</value>
+		<description>How many threads should the threadpool used to compile
+			reports
+			for volumes in parallel have.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.heartbeat.interval</name>
+		<value>3</value>
+		<description>Determines datanode heartbeat interval in seconds.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.handler.count</name>
+		<value>10</value>
+		<description>The number of server threads for the namenode.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.safemode.threshold-pct</name>
+		<value>0.999f</value>
+		<description>
+			Specifies the percentage of blocks that should satisfy
+			the minimal replication requirement defined by
+			dfs.namenode.replication.min.
+			Values less than or equal to 0 mean not to wait for any particular
+			percentage of blocks before exiting safemode.
+			Values greater than 1 will make safe mode permanent.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.safemode.min.datanodes</name>
+		<value>0</value>
+		<description>
+			Specifies the number of datanodes that must be considered alive
+			before the name node exits safemode.
+			Values less than or equal to 0 mean not to take the number of live
+			datanodes into account when deciding whether to remain in safe mode
+			during startup.
+			Values greater than the number of datanodes in the cluster
+			will make safe mode permanent.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.safemode.extension</name>
+		<value>30000</value>
+		<description>
+			Determines extension of safe mode in milliseconds
+			after the threshold level is reached.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.balance.bandwidthPerSec</name>
+		<value>1048576</value>
+		<description>
+			Specifies the maximum amount of bandwidth that each datanode
+			can utilize for the balancing purpose in term of
+			the number of bytes per second.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.hosts</name>
+		<value></value>
+		<description>Names a file that contains a list of hosts that are
+			permitted to connect to the namenode. The full pathname of the file
+			must be specified. If the value is empty, all hosts are
+			permitted.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.hosts.exclude</name>
+		<value></value>
+		<description>Names a file that contains a list of hosts that are
+			not permitted to connect to the namenode. The full pathname of the
+			file must be specified. If the value is empty, no hosts are
+			excluded.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.max.objects</name>
+		<value>0</value>
+		<description>The maximum number of files, directories and blocks
+			dfs supports. A value of zero indicates no limit to the number
+			of objects that dfs supports.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.decommission.interval</name>
+		<value>30</value>
+		<description>Namenode periodicity in seconds to check if decommission
+			is
+			complete.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.decommission.nodes.per.interval</name>
+		<value>5</value>
+		<description>The number of nodes namenode checks if decommission is
+			complete
+			in each dfs.namenode.decommission.interval.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.replication.interval</name>
+		<value>3</value>
+		<description>The periodicity in seconds with which the namenode
+			computes
+			repliaction work for datanodes.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.accesstime.precision</name>
+		<value>3600000</value>
+		<description>The access time for HDFS file is precise upto this value.
+			The default value is 1 hour. Setting a value of 0 disables
+			access times for HDFS.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.plugins</name>
+		<value></value>
+		<description>Comma-separated list of datanode plug-ins to be
+			activated.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.plugins</name>
+		<value></value>
+		<description>Comma-separated list of namenode plug-ins to be
+			activated.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.stream-buffer-size</name>
+		<value>4096</value>
+		<description>The size of buffer to stream files.
+			The size of this buffer should probably be a multiple of hardware
+			page size (4096 on Intel x86), and it determines how much data is
+			buffered during read and write operations.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.bytes-per-checksum</name>
+		<value>512</value>
+		<description>The number of bytes per checksum. Must not be larger than
+			dfs.stream-buffer-size
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client-write-packet-size</name>
+		<value>65536</value>
+		<description>Packet size for clients to write</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.checkpoint.dir</name>
+		<value>file://${hadoop.tmp.dir}/dfs/namesecondary</value>
+		<description>Determines where on the local filesystem the DFS
+			secondary
+			name node should store the temporary images to merge.
+			If this is a comma-delimited list of directories then the image is
+			replicated in all of the directories for redundancy.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.checkpoint.edits.dir</name>
+		<value>${dfs.namenode.checkpoint.dir}</value>
+		<description>Determines where on the local filesystem the DFS
+			secondary
+			name node should store the temporary edits to merge.
+			If this is a comma-delimited list of directoires then teh edits is
+			replicated in all of the directoires for redundancy.
+			Default value is same as dfs.namenode.checkpoint.dir
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.checkpoint.period</name>
+		<value>3600</value>
+		<description>The number of seconds between two periodic checkpoints.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.checkpoint.txns</name>
+		<value>40000</value>
+		<description>The Secondary NameNode or CheckpointNode will create a
+			checkpoint
+			of the namespace every 'dfs.namenode.checkpoint.txns' transactions,
+			regardless
+			of whether 'dfs.namenode.checkpoint.period' has expired.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.checkpoint.check.period</name>
+		<value>60</value>
+		<description>The SecondaryNameNode and CheckpointNode will poll the
+			NameNode
+			every 'dfs.namenode.checkpoint.check.period' seconds to query the number
+			of uncheckpointed transactions.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.num.checkpoints.retained</name>
+		<value>2</value>
+		<description>The number of image checkpoint files that will be
+			retained by
+			the NameNode and Secondary NameNode in their storage directories. All
+			edit
+			logs necessary to recover an up-to-date namespace from the oldest
+			retained
+			checkpoint will also be retained.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.num.extra.edits.retained</name>
+		<value>1000000</value>
+		<description>The number of extra transactions which should be retained
+			beyond what is minimally necessary for a NN restart. This can be
+			useful for
+			audit purposes or for an HA setup where a remote Standby Node may have
+			been offline for some time and need to have a longer backlog of
+			retained
+			edits in order to start again.
+			Typically each edit is on the order of a few hundred bytes, so the default
+			of 1 million edits should be on the order of hundreds of MBs or low
+			GBs.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.delegation.key.update-interval</name>
+		<value>86400000</value>
+		<description>The update interval for master key for delegation tokens
+			in the namenode in milliseconds.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.delegation.token.max-lifetime</name>
+		<value>604800000</value>
+		<description>The maximum lifetime in milliseconds for which a
+			delegation
+			token is valid.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.delegation.token.renew-interval</name>
+		<value>86400000</value>
+		<description>The renewal interval for delegation token in
+			milliseconds.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.failed.volumes.tolerated</name>
+		<value>0</value>
+		<description>The number of volumes that are allowed to
+			fail before a datanode stops offering service. By default
+			any volume failure will cause a datanode to shutdown.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.image.compress</name>
+		<value>false</value>
+		<description>Should the dfs image be compressed?
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.image.compression.codec</name>
+		<value>org.apache.hadoop.io.compress.DefaultCodec</value>
+		<description>If the dfs image is compressed, how should they be
+			compressed?
+			This has to be a codec defined in io.compression.codecs.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.image.transfer.bandwidthPerSec</name>
+		<value>0</value>
+		<description>
+			Specifies the maximum amount of bandwidth that can be utilized for image
+			transfer in term of the number of bytes per second.
+			A default value of 0 indicates that throttling is disabled.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.support.allow.format</name>
+		<value>true</value>
+		<description>Does HDFS namenode allow itself to be formatted?
+			You may consider setting this to false for any production
+			cluster, to avoid any possibility of formatting a running DFS.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.max.transfer.threads</name>
+		<value>4096</value>
+		<description>
+			Specifies the maximum number of threads to use for transferring data
+			in and out of the DN.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.readahead.bytes</name>
+		<value>4193404</value>
+		<description>
+			While reading block files, if the Hadoop native libraries are available,
+			the datanode can use the posix_fadvise system call to explicitly
+			page data into the operating system buffer cache ahead of the current
+			reader's position. This can improve performance especially when
+			disks are highly contended.
+
+			This configuration specifies the number of bytes ahead of the current
+			read position which the datanode will attempt to read ahead. This
+			feature may be disabled by configuring this property to 0.
+
+			If the native libraries are not available, this configuration has no
+			effect.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.drop.cache.behind.reads</name>
+		<value>false</value>
+		<description>
+			In some workloads, the data read from HDFS is known to be significantly
+			large enough that it is unlikely to be useful to cache it in the
+			operating system buffer cache. In this case, the DataNode may be
+			configured to automatically purge all data from the buffer cache
+			after it is delivered to the client. This behavior is automatically
+			disabled for workloads which read only short sections of a block
+			(e.g HBase random-IO workloads).
+
+			This may improve performance for some workloads by freeing buffer
+			cache spage usage for more cacheable data.
+
+			If the Hadoop native libraries are not available, this configuration
+			has no effect.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.drop.cache.behind.writes</name>
+		<value>false</value>
+		<description>
+			In some workloads, the data written to HDFS is known to be
+			significantly
+			large enough that it is unlikely to be useful to cache it in the
+			operating system buffer cache. In this case, the DataNode may be
+			configured to automatically purge all data from the buffer cache
+			after it is written to disk.
+
+			This may improve performance for some workloads by freeing buffer
+			cache spage usage for more cacheable data.
+
+			If the Hadoop native libraries are not available, this configuration
+			has no effect.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.sync.behind.writes</name>
+		<value>false</value>
+		<description>
+			If this configuration is enabled, the datanode will instruct the
+			operating system to enqueue all written data to the disk immediately
+			after it is written. This differs from the usual OS policy which
+			may wait for up to 30 seconds before triggering writeback.
+
+			This may improve performance for some workloads by smoothing the
+			IO profile for data written to disk.
+
+			If the Hadoop native libraries are not available, this configuration
+			has no effect.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.failover.max.attempts</name>
+		<value>15</value>
+		<description>
+			Expert only. The number of client failover attempts that should be
+			made before the failover is considered failed.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.failover.sleep.base.millis</name>
+		<value>500</value>
+		<description>
+			Expert only. The time to wait, in milliseconds, between failover
+			attempts increases exponentially as a function of the number of
+			attempts made so far, with a random factor of +/- 50%. This option
+			specifies the base value used in the failover calculation. The
+			first failover will retry immediately. The 2nd failover attempt
+			will delay at least dfs.client.failover.sleep.base.millis
+			milliseconds. And so on.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.failover.sleep.max.millis</name>
+		<value>15000</value>
+		<description>
+			Expert only. The time to wait, in milliseconds, between failover
+			attempts increases exponentially as a function of the number of
+			attempts made so far, with a random factor of +/- 50%. This option
+			specifies the maximum value to wait between failovers.
+			Specifically, the time between two failover attempts will not
+			exceed +/- 50% of dfs.client.failover.sleep.max.millis
+			milliseconds.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.failover.connection.retries</name>
+		<value>0</value>
+		<description>
+			Expert only. Indicates the number of retries a failover IPC client
+			will make to establish a server connection.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.failover.connection.retries.on.timeouts</name>
+		<value>0</value>
+		<description>
+			Expert only. The number of retry attempts a failover IPC client
+			will make on socket timeout when establishing a server connection.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.nameservices</name>
+		<value></value>
+		<description>
+			Comma-separated list of nameservices.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.nameservice.id</name>
+		<value></value>
+		<description>
+			The ID of this nameservice. If the nameservice ID is not
+			configured or more than one nameservice is configured for
+			dfs.nameservices it is determined automatically by
+			matching the local node's address with the configured address.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.ha.namenodes.EXAMPLENAMESERVICE</name>
+		<value></value>
+		<description>
+			The prefix for a given nameservice, contains a comma-separated
+			list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.ha.namenode.id</name>
+		<value></value>
+		<description>
+			The ID of this namenode. If the namenode ID is not configured it
+			is determined automatically by matching the local node's address
+			with the configured address.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.ha.log-roll.period</name>
+		<value>120</value>
+		<description>
+			How often, in seconds, the StandbyNode should ask the active to
+			roll edit logs. Since the StandbyNode only reads from finalized
+			log segments, the StandbyNode will only be as up-to-date as how
+			often the logs are rolled. Note that failover triggers a log roll
+			so the StandbyNode will be up to date before it becomes active.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.ha.tail-edits.period</name>
+		<value>60</value>
+		<description>
+			How often, in seconds, the StandbyNode should check for new
+			finalized log segments in the shared edits log.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.ha.automatic-failover.enabled</name>
+		<value>false</value>
+		<description>
+			Whether automatic failover is enabled. See the HDFS High
+			Availability documentation for details on automatic HA
+			configuration.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.support.append</name>
+		<value>true</value>
+		<description>
+			Does HDFS allow appends to files?
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.use.datanode.hostname</name>
+		<value>false</value>
+		<description>Whether clients should use datanode hostnames when
+			connecting to datanodes.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.use.datanode.hostname</name>
+		<value>false</value>
+		<description>Whether datanodes should use datanode hostnames when
+			connecting to other datanodes for data transfer.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.local.interfaces</name>
+		<value></value>
+		<description>A comma separated list of network interface names to use
+			for data transfer between the client and datanodes. When creating
+			a connection to read from or write to a datanode, the client
+			chooses one of the specified interfaces at random and binds its
+			socket to the IP of that interface. Individual names may be
+			specified as either an interface name (eg "eth0"), a subinterface
+			name (eg "eth0:0"), or an IP address (which may be specified using
+			CIDR notation to match a range of IPs).
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.kerberos.internal.spnego.principal</name>
+		<value>${dfs.web.authentication.kerberos.principal}</value>
+	</property>
+
+	<property>
+		<name>dfs.secondary.namenode.kerberos.internal.spnego.principal</name>
+		<value>${dfs.web.authentication.kerberos.principal}</value>
+	</property>
+
+	<property>
+		<name>dfs.namenode.invalidate.work.pct.per.iteration</name>
+		<value>0.32f</value>
+		<description>
+			*Note*: Advanced property. Change with caution.
+			This determines the percentage amount of block
+			invalidations (deletes) to do over a single DN heartbeat
+			deletion command. The final deletion count is determined by applying this
+			percentage to the number of live nodes in the system.
+			The resultant number is the number of blocks from the deletion list
+			chosen for proper invalidation over a single heartbeat of a single
+			DN.
+			Value should be a positive, non-zero percentage in float notation (X.Yf),
+			with 1.0f meaning 100%.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.namenode.replication.work.multiplier.per.iteration</name>
+		<value>2</value>
+		<description>
+			*Note*: Advanced property. Change with caution.
+			This determines the total amount of block transfers to begin in
+			parallel at a DN, for replication, when such a command list is being
+			sent over a DN heartbeat by the NN. The actual number is obtained by
+			multiplying this multiplier with the total number of live nodes in
+			the
+			cluster. The result number is the number of blocks to begin transfers
+			immediately for, per DN heartbeat. This number can be any positive,
+			non-zero integer.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.webhdfs.enabled</name>
+		<value>false</value>
+		<description>
+			Enable WebHDFS (REST API) in Namenodes and Datanodes.
+		</description>
+	</property>
+
+	<property>
+		<name>hadoop.fuse.connection.timeout</name>
+		<value>300</value>
+		<description>
+			The minimum number of seconds that we'll cache libhdfs connection
+			objects
+			in fuse_dfs. Lower values will result in lower memory consumption;
+			higher
+			values may speed up access by avoiding the overhead of creating new
+			connection objects.
+		</description>
+	</property>
+
+	<property>
+		<name>hadoop.fuse.timer.period</name>
+		<value>5</value>
+		<description>
+			The number of seconds between cache expiry checks in fuse_dfs. Lower
+			values
+			will result in fuse_dfs noticing changes to Kerberos ticket caches more
+			quickly.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.metrics.percentiles.intervals</name>
+		<value></value>
+		<description>
+			Comma-delimited set of integers denoting the desired rollover intervals
+			(in seconds) for percentile latency metrics on the Namenode and
+			Datanode.
+			By default, percentile latency metrics are disabled.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.encrypt.data.transfer</name>
+		<value>false</value>
+		<description>
+			Whether or not actual block data that is read/written from/to HDFS should
+			be encrypted on the wire. This only needs to be set on the NN and DNs,
+			clients will deduce this automatically.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.encrypt.data.transfer.algorithm</name>
+		<value></value>
+		<description>
+			This value may be set to either "3des" or "rc4". If nothing is set, then
+			the configured JCE default on the system is used (usually 3DES.) It
+			is
+			widely believed that 3DES is more cryptographically secure, but RC4 is
+			substantially faster.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
+		<value>false</value>
+		<description>
+			Boolean which enables backend datanode-side support for the experimental
+			DistributedFileSystem#getFileVBlockStorageLocations API.
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.file-block-storage-locations.num-threads</name>
+		<value>10</value>
+		<description>
+			Number of threads used for making parallel RPCs in
+			DistributedFileSystem#getFileBlockStorageLocations().
+		</description>
+	</property>
+
+	<property>
+		<name>dfs.client.file-block-storage-locations.timeout</name>
+		<value>60</value>
+		<description>
+			Timeout (in seconds) for the parallel RPCs made in
+			DistributedFileSystem#getFileBlockStorageLocations().
+		</description>
+	</property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/invalid.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/invalid.xml b/depends/libhdfs3/test/data/invalid.xml
new file mode 100644
index 0000000..22749b7
--- /dev/null
+++ b/depends/libhdfs3/test/data/invalid.xml
@@ -0,0 +1,6 @@
+<configuration>
+
+	<property>
+		<name>hadoop.hdfs.configuration.version</name>
+		<value>1</value>
+		<description>version of this configuration file</description>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/invalidha.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/invalidha.xml b/depends/libhdfs3/test/data/invalidha.xml
new file mode 100644
index 0000000..99014a5
--- /dev/null
+++ b/depends/libhdfs3/test/data/invalidha.xml
@@ -0,0 +1,29 @@
+<configuration>
+        <property>
+                <name>hadoop.security.authentication</name>
+                <value>kerberos</value>
+        </property>
+        <property>
+                <name>dfs.nameservices</name>
+                <value>phdcluster</value>
+        </property>
+
+        <property>
+                <name>dfs.ha.namenodes.phdcluster</name>
+                <value>nn1,nn2</value>
+        </property>
+
+        <property>
+                <name>dfs.namenode.rpc-address.phdcluster.nn1</name>
+                <value>mdw:9000</value>
+        </property>
+
+                <name>dfs.namenode.rpc-address.phdcluster.nn2</name>
+                <value>smdw:9000</value>
+        </property>
+
+        <property>
+                <name>dfs.client.failover.proxy.provider.phdcluster</name>
+                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
+        </property>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/unit-config.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/unit-config.xml b/depends/libhdfs3/test/data/unit-config.xml
new file mode 100644
index 0000000..dbf0ed9
--- /dev/null
+++ b/depends/libhdfs3/test/data/unit-config.xml
@@ -0,0 +1,83 @@
+<configuration>
+
+	<property>
+		<name>TestString</name>
+		<value>TestString</value>
+	</property>
+
+	<property>
+		<name>TestInt32</name>
+		<value>123456</value>
+	</property>
+
+	<property>
+		<name>TestInt32Invalid</name>
+		<value>123a456</value>
+	</property>
+
+	<property>
+		<name>TestInt32OverFlow</name>
+		<value>12345678901</value>
+	</property>
+
+	<property>
+		<name>TestInt64</name>
+		<value>12345678901</value>
+	</property>
+
+	<property>
+		<name>TestInt64Invalid</name>
+		<value>12345a678901</value>
+	</property>
+
+	<property>
+		<name>TestInt64OverFlow</name>
+		<value>123456789011234567890112345678901</value>
+	</property>
+
+	<property>
+		<name>TestDouble</name>
+		<value>123.456</value>
+	</property>
+
+	<property>
+		<name>TestDoubleInvalid</name>
+		<value>123e1234a</value>
+	</property>
+
+	<property>
+		<name>TestDoubleOverflow</name>
+		<value>123e1234</value>
+	</property>
+
+	<property>
+		<name>TestDoubleUnderflow</name>
+		<value>123e-1234</value>
+	</property>
+
+	<property>
+		<name>TestTrue1</name>
+		<value>true</value>
+	</property>
+
+	<property>
+		<name>TestTrue2</name>
+		<value>1</value>
+	</property>
+
+	<property>
+		<name>TestFalse1</name>
+		<value>faLse</value>
+	</property>
+
+	<property>
+		<name>TestFalse2</name>
+		<value>0</value>
+	</property>
+
+	<property>
+		<name>TestBoolInvalid</name>
+		<value>atrue</value>
+	</property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/data/validha.xml
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/data/validha.xml b/depends/libhdfs3/test/data/validha.xml
new file mode 100644
index 0000000..0e5eb58
--- /dev/null
+++ b/depends/libhdfs3/test/data/validha.xml
@@ -0,0 +1,35 @@
+<configuration>
+        <property>
+                <name>hadoop.security.authentication</name>
+                <value>kerberos</value>
+        </property>
+        <property>
+                <name>dfs.nameservices</name>
+                <value>phdcluster</value>
+        </property>
+
+        <property>
+                <name>dfs.ha.namenodes.phdcluster</name>
+                <value>nn1 , 	nn2</value>
+        </property>
+
+        <property>
+                <name>dfs.namenode.rpc-address.phdcluster.nn1</name>
+                <value> 	mdw:9000</value>
+        </property>
+
+        <property>
+                <name>dfs.namenode.rpc-address.phdcluster.nn2</name>
+                <value>smdw:9000 </value>
+        </property>
+
+        <property>
+                <name>dfs.namenode.http-address.phdcluster.nn1</name>
+                 <value>mdw:50070</value>
+        </property>
+	
+        <property>
+                <name>dfs.client.failover.proxy.provider.phdcluster</name>
+                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
+        </property>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/function/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/function/CMakeLists.txt b/depends/libhdfs3/test/function/CMakeLists.txt
new file mode 100644
index 0000000..9746e88
--- /dev/null
+++ b/depends/libhdfs3/test/function/CMakeLists.txt
@@ -0,0 +1,70 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+AUTO_SOURCES(function_SOURCES "*.cpp" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
+
+INCLUDE_DIRECTORIES(${gmock_INCLUDE_DIR} ${gtest_INCLUDE_DIR} ${libhdfs3_ROOT_SOURCES_DIR})
+
+IF(NEED_BOOST)
+    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+ENDIF(NEED_BOOST)
+
+INCLUDE_DIRECTORIES(${libhdfs3_ROOT_SOURCES_DIR})
+INCLUDE_DIRECTORIES(${libhdfs3_COMMON_SOURCES_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(${libhdfs3_PLATFORM_HEADER_DIR})
+INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
+INCLUDE_DIRECTORIES(${KERBEROS_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(${GSASL_INCLUDE_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/mock)
+
+PROTOBUF_GENERATE_CPP(libhdfs3_PROTO_SOURCES libhdfs3_PROTO_HEADERS ${libhdfs3_PROTO_FILES})
+
+IF(ENABLE_DEBUG STREQUAL ON)
+    SET(libhdfs3_SOURCES ${libhdfs3_SOURCES} ${libhdfs3_MOCK_SOURCES})
+ENDIF(ENABLE_DEBUG STREQUAL ON)
+
+IF(NOT HDFS_SUPERUSER)
+    SET(HDFS_SUPERUSER $ENV{USER})
+ENDIF(NOT HDFS_SUPERUSER)
+
+ADD_DEFINITIONS(-DHDFS_SUPERUSER="${HDFS_SUPERUSER}")
+ADD_DEFINITIONS(-DUSER="$ENV{USER}")
+
+ADD_EXECUTABLE(function EXCLUDE_FROM_ALL
+    ${gtest_SOURCES}
+    ${gmock_SOURCES}
+    ${libhdfs3_SOURCES} 
+    ${libhdfs3_PROTO_SOURCES} 
+    ${libhdfs3_PROTO_HEADERS}
+    ${function_SOURCES}
+)
+
+TARGET_LINK_LIBRARIES(function pthread)
+
+IF(NEED_BOOST)
+    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${Boost_LIBRARY_DIRS}")
+    TARGET_LINK_LIBRARIES(function boost_thread)
+    TARGET_LINK_LIBRARIES(function boost_chrono)
+    TARGET_LINK_LIBRARIES(function boost_system)
+    TARGET_LINK_LIBRARIES(function boost_atomic)
+    TARGET_LINK_LIBRARIES(function boost_iostreams)
+ENDIF(NEED_BOOST)
+
+IF(NEED_GCCEH)
+    TARGET_LINK_LIBRARIES(function gcc_eh)
+ENDIF(NEED_GCCEH)
+
+IF(OS_LINUX)
+    TARGET_LINK_LIBRARIES(function ${LIBUUID_LIBRARIES})
+    INCLUDE_DIRECTORIES(${LIBUUID_INCLUDE_DIRS})
+ENDIF(OS_LINUX)
+
+TARGET_LINK_LIBRARIES(function ${PROTOBUF_LIBRARIES})
+TARGET_LINK_LIBRARIES(function ${LIBXML2_LIBRARIES})
+TARGET_LINK_LIBRARIES(function ${KERBEROS_LIBRARIES})
+TARGET_LINK_LIBRARIES(function ${GSASL_LIBRARIES})
+
+SET(function_SOURCES ${function_SOURCES} PARENT_SCOPE)
+

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/bc0904ab/depends/libhdfs3/test/function/FunctionTestMain.cpp
----------------------------------------------------------------------
diff --git a/depends/libhdfs3/test/function/FunctionTestMain.cpp b/depends/libhdfs3/test/function/FunctionTestMain.cpp
new file mode 100644
index 0000000..b8299de
--- /dev/null
+++ b/depends/libhdfs3/test/function/FunctionTestMain.cpp
@@ -0,0 +1,38 @@
+/********************************************************************
+ * Copyright (c) 2013 - 2014, Pivotal Inc.
+ * All rights reserved.
+ *
+ * Author: Zhanwei Wang
+ ********************************************************************/
+/********************************************************************
+ * 2014 -
+ * open source under Apache License Version 2.0
+ ********************************************************************/
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "gtest/gtest.h"
+
+int main(int argc, char ** argv) {
+    ::testing::InitGoogleTest(&argc, argv);
+#ifdef DATA_DIR
+    if (0 != chdir(DATA_DIR)) {
+        abort();
+    }
+#endif
+    return RUN_ALL_TESTS();
+}


Mime
View raw message