Description of problem: There is quota X MB set on directory. I've tried to copy do that directory file with size X MB/2. First copying was OK as I've expected. Second one ends with this error: $ hadoop fs -put ./100 /quota/dir5/100.10 14/07/18 13:56:28 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/07/18 13:56:28 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/07/18 13:56:28 INFO glusterfs.GlusterFileSystem: Initializing GlusterFS, CRC disabled. 14/07/18 13:56:28 INFO glusterfs.GlusterFileSystem: GIT INFO={git.commit.id.abbrev=bace8a2, git.commit.user.email=bchilds.rdu2.redhat.com, git.commit.message.full=[update RPM spec file/changelog] - 2.3.2 , git.commit.id=bace8a2d0269353c9ad293c8b2509ae145b56888, git.commit.message.short=[update RPM spec file/changelog] - 2.3.2, git.commit.user.name=Brad Childs, git.build.user.name=Unknown, git.commit.id.describe=2.3.10-9-gbace8a2, git.build.user.email=Unknown, git.branch=2.3.2, git.commit.time=10.07.2014 @ 09:59:23 EDT, git.build.time=10.07.2014 @ 10:10:47 EDT} 14/07/18 13:56:28 INFO glusterfs.GlusterFileSystem: GIT_TAG=2.3.10 14/07/18 13:56:28 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/07/18 13:56:29 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/07/18 13:56:29 INFO glusterfs.GlusterVolume: Gluster volume: HadoopVol1 at : /mnt/glusterfs/HadoopVol1 14/07/18 13:56:29 INFO glusterfs.GlusterVolume: Working directory is : glusterfs:/user/bigtop 14/07/18 13:56:29 INFO glusterfs.GlusterVolume: Write buffer size : 131072 14/07/18 13:56:29 INFO glusterfs.GlusterVolume: Default block size : 67108864 >>>> put: /mnt/glusterfs/HadoopVol1/quota/dir5/100.10 (Disk quota exceeded) File is partially copied to disk. If I try it again: $ hadoop fs -put ./100 /quota/dir5/100.11 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/07/18 13:56:41 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/07/18 13:56:41 INFO glusterfs.GlusterFileSystem: Initializing GlusterFS, CRC disabled. 14/07/18 13:56:41 INFO glusterfs.GlusterFileSystem: GIT INFO={git.commit.id.abbrev=bace8a2, git.commit.user.email=bchilds.rdu2.redhat.com, git.commit.message.full=[update RPM spec file/changelog] - 2.3.2 , git.commit.id=bace8a2d0269353c9ad293c8b2509ae145b56888, git.commit.message.short=[update RPM spec file/changelog] - 2.3.2, git.commit.user.name=Brad Childs, git.build.user.name=Unknown, git.commit.id.describe=2.3.10-9-gbace8a2, git.build.user.email=Unknown, git.branch=2.3.2, git.commit.time=10.07.2014 @ 09:59:23 EDT, git.build.time=10.07.2014 @ 10:10:47 EDT} 14/07/18 13:56:41 INFO glusterfs.GlusterFileSystem: GIT_TAG=2.3.10 14/07/18 13:56:41 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Gluster volume: HadoopVol1 at : /mnt/glusterfs/HadoopVol1 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Working directory is : glusterfs:/user/bigtop 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Write buffer size : 131072 14/07/18 13:56:41 INFO glusterfs.GlusterVolume: Default block size : 67108864 Exception in thread "main" org.apache.hadoop.fs.FSError: java.io.IOException: Disk quota exceeded at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:238) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105) at org.apache.hadoop.fs.FSDataOutputStream$PositionCache.write(FSDataOutputStream.java:59) at java.io.DataOutputStream.write(DataOutputStream.java:90) at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:80) at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:52) at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:112) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:366) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289) at org.apache.hadoop.fs.glusterfs.GlusterVolume.rename(GlusterVolume.java:251) at org.apache.hadoop.fs.FilterFileSystem.rename(FilterFileSystem.java:210) at org.apache.hadoop.fs.FilterFileSystem.rename(FilterFileSystem.java:210) at org.apache.hadoop.fs.shell.CommandWithDestination$TargetFileSystem.rename(CommandWithDestination.java:322) at org.apache.hadoop.fs.shell.CommandWithDestination.copyStreamToTarget(CommandWithDestination.java:282) at org.apache.hadoop.fs.shell.CommandWithDestination.copyFileToTarget(CommandWithDestination.java:245) at org.apache.hadoop.fs.shell.CommandWithDestination.processPath(CommandWithDestination.java:188) at org.apache.hadoop.fs.shell.CommandWithDestination.processPath(CommandWithDestination.java:173) at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:306) at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:278) at org.apache.hadoop.fs.shell.CommandWithDestination.processPathArgument(CommandWithDestination.java:168) at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:260) at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:244) at org.apache.hadoop.fs.shell.CommandWithDestination.processArguments(CommandWithDestination.java:145) at org.apache.hadoop.fs.shell.CopyCommands$Put.processArguments(CopyCommands.java:229) at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:190) at org.apache.hadoop.fs.shell.Command.run(Command.java:154) at org.apache.hadoop.fs.FsShell.run(FsShell.java:255) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) at org.apache.hadoop.fs.FsShell.main(FsShell.java:305) Caused by: java.io.IOException: Disk quota exceeded at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:282) at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.write(RawLocalFileSystem.java:236) ... 30 more There is correct exception that file doesn't fit to disk because of quota. I think the first error message should be the same(so exception which can be caught by application). Version-Release number of selected component (if applicable): glusterfs-3.6.0.24-1.el6rhs.x86_64 glusterfs-api-3.6.0.24-1.el6rhs.x86_64 glusterfs-cli-3.6.0.24-1.el6rhs.x86_64 glusterfs-fuse-3.6.0.24-1.el6rhs.x86_64 glusterfs-geo-replication-3.6.0.24-1.el6rhs.x86_64 glusterfs-libs-3.6.0.24-1.el6rhs.x86_64 glusterfs-rdma-3.6.0.24-1.el6rhs.x86_64 glusterfs-server-3.6.0.24-1.el6rhs.x86_64 gluster-nagios-addons-0.1.9-1.el6rhs.x86_64 gluster-nagios-common-0.1.3-2.el6rhs.noarch hadoop-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-client-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-hdfs-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-libhdfs-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-lzo-0.5.0-1.x86_64 hadoop-lzo-native-0.5.0-1.x86_64 hadoop-mapreduce-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-mapreduce-historyserver-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-yarn-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-yarn-nodemanager-2.2.0.2.0.6.0-101.el6.x86_64 hadoop-yarn-resourcemanager-2.2.0.2.0.6.0-101.el6.x86_64 rhs-hadoop-2.3.2-5.el6rhs.noarch rhs-hadoop-install-1_27-1.el6rhs.noarch samba-glusterfs-3.6.9-168.4.el6rhs.x86_64 vdsm-gluster-4.14.7.2-1.el6rhs.noarch How reproducible: 100% Actual results and Expected results: There are 2 types of error messages because of quota exceeded. I think both should be unified to one and it should be exception as in second case.
I found another type of exception while testing quota with bigtop. ------------------ Steps to reproduce ------------------ 1. Set quota on direcotry dir1, then create dir2 inside directory dir1 and set quota on this dir also. 2. When the quota is exceeded in both directory or subdirectory, the mapred job ends with this exception (see below). ------------------ Expected results ------------------ Because it is not clear from the Exception trace, that this is a problem with quota and there are already two other types of exceptions possible, I would like to suggest unification of Exceptions to one (maybe a child of IOException). ==========================MAPRED JOB STACK TRACE============================ 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/10/13 12:59:48 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/10/13 12:59:48 INFO glusterfs.GlusterFileSystem: Initializing GlusterFS, CRC disabled. 14/10/13 12:59:48 INFO glusterfs.GlusterFileSystem: GIT INFO={git.commit.id.abbrev=acca0e1, git.commit.user.email=bchilds.rdu2.redhat.com, git.commit.message.full=[update RPM spec file/changelog] - 2.3.3 , git.commit.id=acca0e11de5f49a67474af70f6758d4182852760, git.commit.message.short=[update RPM spec file/changelog] - 2.3.3, git.commit.user.name=Brad Childs, git.build.user.name=Unknown, git.commit.id.describe=2.3.10-12-gacca0e1, git.build.user.email=Unknown, git.branch=2.3.3, git.commit.time=29.07.2014 @ 10:52:06 EDT, git.build.time=29.07.2014 @ 11:06:36 EDT} 14/10/13 12:59:48 INFO glusterfs.GlusterFileSystem: GIT_TAG=2.3.10 14/10/13 12:59:48 INFO glusterfs.GlusterFileSystem: Configuring GlusterFS 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Gluster volume: HadoopVol1 at : /mnt/glusterfs/HadoopVol1 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Gluster volume: gv0 at : /mnt/gv0 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Working directory is : glusterfs:/user/jerry 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Write buffer size : 131072 14/10/13 12:59:48 INFO glusterfs.GlusterVolume: Default block size : 67108864 14/10/13 12:59:50 INFO impl.TimelineClientImpl: Timeline service address: http://master-hdp21:8188/ws/v1/timeline/ 14/10/13 12:59:50 INFO client.RMProxy: Connecting to ResourceManager at master-hdp21/192.168.122.190:8050 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Initializing gluster volume.. 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Gluster volume: HadoopVol1 at : /mnt/glusterfs/HadoopVol1 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Gluster volume: gv0 at : /mnt/gv0 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Working directory is : glusterfs:/user/jerry 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Write buffer size : 131072 14/10/13 12:59:50 INFO glusterfs.GlusterVolume: Default block size : 67108864 14/10/13 12:59:51 INFO terasort.TeraSort: Generating 1000000 using 2 14/10/13 12:59:52 INFO mapreduce.JobSubmitter: number of splits:2 14/10/13 12:59:52 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1413189162518_0013 14/10/13 12:59:53 INFO impl.YarnClientImpl: Submitted application application_1413189162518_0013 14/10/13 12:59:53 INFO mapreduce.Job: The url to track the job: http://master-hdp21:8088/proxy/application_1413189162518_0013/ 14/10/13 12:59:53 INFO mapreduce.Job: Running job: job_1413189162518_0013 14/10/13 13:00:04 INFO mapreduce.Job: Job job_1413189162518_0013 running in uber mode : false 14/10/13 13:00:04 INFO mapreduce.Job: map 0% reduce 0% 14/10/13 13:00:17 INFO mapreduce.Job: map 50% reduce 0% 14/10/13 13:00:17 INFO mapreduce.Job: Task Id : attempt_1413189162518_0013_m_000001_0, Status : FAILED Error: java.io.IOException: Mkdirs failed to create glusterfs:/user/jerry/dir1/in2/_temporary/1/_temporary/attempt_1413189162518_0013_m_000001_0 at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:263) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:252) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:286) at org.apache.hadoop.fs.FilterFileSystem.create(FilterFileSystem.java:178) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:773) at org.apache.hadoop.examples.terasort.TeraOutputFormat.getRecordWriter(TeraOutputFormat.java:99) at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:624) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:744) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) 14/10/13 13:00:23 INFO mapreduce.Job: Task Id : attempt_1413189162518_0013_m_000001_1, Status : FAILED Error: java.io.IOException: Mkdirs failed to create glusterfs:/user/jerry/dir1/in2/_temporary/1/_temporary/attempt_1413189162518_0013_m_000001_1 at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:263) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:252) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:286) at org.apache.hadoop.fs.FilterFileSystem.create(FilterFileSystem.java:178) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:773) at org.apache.hadoop.examples.terasort.TeraOutputFormat.getRecordWriter(TeraOutputFormat.java:99) at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:624) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:744) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) 14/10/13 13:00:29 INFO mapreduce.Job: Task Id : attempt_1413189162518_0013_m_000001_2, Status : FAILED Error: java.io.IOException: Mkdirs failed to create glusterfs:/user/jerry/dir1/in2/_temporary/1/_temporary/attempt_1413189162518_0013_m_000001_2 at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:263) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:252) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:286) at org.apache.hadoop.fs.FilterFileSystem.create(FilterFileSystem.java:178) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:773) at org.apache.hadoop.examples.terasort.TeraOutputFormat.getRecordWriter(TeraOutputFormat.java:99) at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:624) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:744) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1594) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) 14/10/13 13:00:36 INFO mapreduce.Job: map 100% reduce 0% 14/10/13 13:00:37 INFO mapreduce.Job: Job job_1413189162518_0013 failed with state FAILED due to: Task failed task_1413189162518_0013_m_000001 Job failed as tasks failed. failedMaps:1 failedReduces:0 14/10/13 13:00:37 INFO mapreduce.Job: Counters: 32 File System Counters FILE: Number of bytes read=0 FILE: Number of bytes written=97803 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 GLUSTERFS: Number of bytes read=50000167 GLUSTERFS: Number of bytes written=100000000 GLUSTERFS: Number of read operations=0 GLUSTERFS: Number of large read operations=0 GLUSTERFS: Number of write operations=0 Job Counters Failed map tasks=4 Launched map tasks=5 Other local map tasks=5 Total time spent by all maps in occupied slots (ms)=34145 Total time spent by all reduces in occupied slots (ms)=0 Total time spent by all map tasks (ms)=34145 Total vcore-seconds taken by all map tasks=34145 Total megabyte-seconds taken by all map tasks=23286890 Map-Reduce Framework Map input records=500000 Map output records=500000 Input split bytes=82 Spilled Records=0 Failed Shuffles=0 Merged Map outputs=0 GC time elapsed (ms)=51 CPU time spent (ms)=1330 Physical memory (bytes) snapshot=99323904 Virtual memory (bytes) snapshot=1204695040 Total committed heap usage (bytes)=32636928 org.apache.hadoop.examples.terasort.TeraGen$Counters CHECKSUM=1074598070305752 File Input Format Counters Bytes Read=0 File Output Format Counters Bytes Written=50000000
This solution is no longer available from Red Hat.