Hi Alexander, Your NNBench usage looks basically correct, but NNBench is not a standard Hadoop tool. It does not implement the org.apache.hadoop.util.Tool interface, it does not execute through org.apache.hadoop.util.ToolRunner, and therefore it does not support the command line arguments that a lot of other Hadoop tools like the FsShell support. Specifically, it does not support passing -D arguments to override fs.defaultFS or any other configuration properties.
An alternative way to handle this would be to get a local copy of the configuration directory from the remote cluster that you want to test. I expect those configuration files would have fs.defaultFS set to the URL of that remote cluster in core-site.xml. Before launching NNBench, run "export HADOOP_CONF_DIR=<path to local copy of configuration files>". After exporting that environment variable, you can run "hadoop classpath" to print the classpath that will be used by all "hadoop" commands and confirm that the correct configuration directory for the target cluster is on the classpath. Then, you can run NNBench again, but drop the -D argument, since it's going to get ignored anyway. I don't see any reason why NNBench shouldn't implement the standard Tool interface and thus support the command line arguments that you were expecting. If you'd like to request that as an enhancement, please go ahead and file an HDFS jira to request it. Feel free to post a patch too if you're inclined. Otherwise, someone else in the community can pick it up. I hope this helps. --Chris Nauroth On 7/22/15, 12:41 AM, "Alexander Striffeler" <a.striffe...@students.unibe.ch> wrote: >Hi all > >I'm pretty new to the Hadoop environment and I'm about performing some >micro benchmarks. In particular, I'm struggling with executing NNBench >against an external File System: > >hadoop jar >/usr/hdp/2.2.6.0-2800/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-t >ests.jar >nnbench -Dfs.defaultFS='hfds://<external.file.system>' -operation >create_write -bytesToWrite 10 -maps 2 -reduces 1 -numberOfFiles 100 >-baseDir hdfs://dapsilon.daplab.ch/user/username/nnbench-`hostname -s` > >yields in >java.lang.IllegalArgumentException: Wrong FS: >hdfs://<external.file.system>/user/username/nnbench-hostname/data, >expected: hdfs://<native fs> > >If I neglect the ext FS prefix in the baseDir, NNBench simply ignores >the -D option and writes the files to the native DFS. Does anyone have >an idea how to solve this and nnbench an external DFS? > >Thanks a lot, any hints are very appreciated! >Regards, >Alex