[ 
https://issues.apache.org/jira/browse/DRILL-2954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858692#comment-15858692
 ] 

Chun Chang commented on DRILL-2954:
-----------------------------------

just select * ran out of memory:

{noformat}
[root@perfnode166 ~]# sqlline --maxWidth=10000 -n mapr -p mapr -u 
"jdbc:drill:schema=dfs.md1314;drillbit=10.10.30.166"
apache drill 1.8.0
"json ain't no thang"
0: jdbc:drill:schema=dfs.md1314> select * from 
dfs.`/drill/testdata/complex/json/singlewide.json`;
Error: RESOURCE ERROR: One or more nodes ran out of memory while executing the 
query.

Failure allocating buffer.
Fragment 0:0

[Error Id: bc23ef37-9ece-41f3-a40d-028bab775750 on 10.10.30.166:31010] 
(state=,code=0)
{noformat}

> OOM: CTAS from JSON to Parquet on a single wide row JSON file
> -------------------------------------------------------------
>
>                 Key: DRILL-2954
>                 URL: https://issues.apache.org/jira/browse/DRILL-2954
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Storage - Parquet, Storage - Writer
>    Affects Versions: 0.9.0
>            Reporter: Chun Chang
>             Fix For: Future
>
>         Attachments: singlewide.json
>
>
> #Generated by Git-Commit-Id-Plugin
> #Sun May 03 18:33:43 EDT 2015
> git.commit.id.abbrev=10833d2
> Have a single row JSON file, with nested structure about 5 levels deep. The 
> file size is about 3.8M. So, a single row of size about 3.8M.
> Converting this file to parquet using CTAS, drillbit quickly ran out of 
> memory.
> {code}
> 0: jdbc:drill:schema=dfs.drillTestDirComplexP> create table `singlewide.json` 
> as select * from dfs.`/drill/testdata/complex/json/singlewide.json`;
> Query failed: RESOURCE ERROR: One or more nodes ran out of memory while 
> executing the query.
> Fragment 0:0
> [c6ec52c8-8307-4313-97c8-b9da9e3125e5 on qa-node119.qa.lab:31010]
> Error: exception while executing query: Failure while executing query. 
> (state=,code=0)
> {code}
> drillbit log:
> {code}
> 2015-05-04 14:20:13,071 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:foreman] INFO  
> o.a.drill.exec.work.foreman.Foreman - State change requested.  PENDING --> 
> RUNNING
> 2015-05-04 14:20:13,254 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.fragment.FragmentExecutor - 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0: State change requested from 
> AWAITING_ALLOCATION --> RUNNING for
> 2015-05-04 14:20:13,255 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.f.AbstractStatusReporter - State changed for 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0. New state: RUNNING
> 2015-05-04 14:20:45,486 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.c.e.DrillRuntimeException - User Error Occurred
> org.apache.drill.common.exceptions.UserException: RESOURCE ERROR: One or more 
> nodes ran out of memory while executing the query.
> [c6ec52c8-8307-4313-97c8-b9da9e3125e5 ]
>       at 
> org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:465)
>  ~[drill-common-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:210)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
>  [drill-common-0.9.0-rebuffed.jar:0.9.0]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_45]
>       at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
> Caused by: java.lang.OutOfMemoryError: Direct buffer memory
>       at java.nio.Bits.reserveMemory(Bits.java:658) ~[na:1.7.0_45]
>       at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) 
> ~[na:1.7.0_45]
>       at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306) 
> ~[na:1.7.0_45]
>       at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:437) 
> ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
>       at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:179) 
> ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
>       at io.netty.buffer.PoolArena.allocate(PoolArena.java:168) 
> ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
>       at io.netty.buffer.PoolArena.allocate(PoolArena.java:98) 
> ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
>       at 
> io.netty.buffer.PooledByteBufAllocatorL.newDirectBuffer(PooledByteBufAllocatorL.java:46)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:4.0.24.Final]
>       at 
> io.netty.buffer.PooledByteBufAllocatorL.directBuffer(PooledByteBufAllocatorL.java:66)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:4.0.24.Final]
>       at 
> org.apache.drill.exec.memory.TopLevelAllocator$ChildAllocator.buffer(TopLevelAllocator.java:227)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.memory.TopLevelAllocator$ChildAllocator.buffer(TopLevelAllocator.java:234)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.store.parquet.ParquetDirectByteBufferAllocator.allocate(ParquetDirectByteBufferAllocator.java:45)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> parquet.bytes.CapacityByteArrayOutputStream.allocateSlab(CapacityByteArrayOutputStream.java:70)
>  ~[parquet-encoding-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.bytes.CapacityByteArrayOutputStream.initSlabs(CapacityByteArrayOutputStream.java:84)
>  ~[parquet-encoding-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.bytes.CapacityByteArrayOutputStream.<init>(CapacityByteArrayOutputStream.java:65)
>  ~[parquet-encoding-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.hadoop.ColumnChunkPageWriteStore$ColumnChunkPageWriter.<init>(ColumnChunkPageWriteStore.java:76)
>  ~[parquet-hadoop-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.hadoop.ColumnChunkPageWriteStore$ColumnChunkPageWriter.<init>(ColumnChunkPageWriteStore.java:51)
>  ~[parquet-hadoop-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.hadoop.ColumnChunkPageWriteStore.<init>(ColumnChunkPageWriteStore.java:235)
>  ~[parquet-hadoop-1.6.0rc3-drill-r0.1.jar:1.6.0rc3-drill-r0.1]
>       at 
> parquet.hadoop.ColumnChunkPageWriteStoreExposer.newColumnChunkPageWriteStore(ColumnChunkPageWriteStoreExposer.java:39)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:1.6.0rc3-drill-r0.1]
>       at 
> org.apache.drill.exec.store.parquet.ParquetRecordWriter.newSchema(ParquetRecordWriter.java:158)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.store.parquet.ParquetRecordWriter.updateSchema(ParquetRecordWriter.java:142)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.WriterRecordBatch.setupNewSchema(WriterRecordBatch.java:162)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.WriterRecordBatch.innerNext(WriterRecordBatch.java:113)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:144)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:101)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:91)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:130)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:144)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:74) 
> ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:80)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:64) 
> ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:199)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:193)
>  ~[drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at java.security.AccessController.doPrivileged(Native Method) 
> ~[na:1.7.0_45]
>       at javax.security.auth.Subject.doAs(Subject.java:415) ~[na:1.7.0_45]
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1469)
>  ~[hadoop-common-2.4.1-mapr-1408.jar:na]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:193)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       ... 4 common frames omitted
> 2015-05-04 14:20:45,487 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.fragment.FragmentExecutor - 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0: State change requested from RUNNING 
> --> FAILED for
> 2015-05-04 14:20:45,691 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.fragment.FragmentExecutor - 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0: State change requested from FAILED 
> --> FAILED for
> 2015-05-04 14:20:45,692 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.fragment.FragmentExecutor - 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0: State change requested from FAILED 
> --> FAILED for
> 2015-05-04 14:20:45,701 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.drill.exec.work.foreman.Foreman - State change requested.  RUNNING --> 
> FAILED
> org.apache.drill.common.exceptions.UserRemoteException: RESOURCE ERROR: One 
> or more nodes ran out of memory while executing the query.
> Fragment 0:0
> [c6ec52c8-8307-4313-97c8-b9da9e3125e5 on qa-node119.qa.lab:31010]
>       at 
> org.apache.drill.exec.work.foreman.QueryManager$1.statusUpdate(QueryManager.java:409)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.foreman.QueryManager$RootStatusReporter.statusChange(QueryManager.java:389)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.AbstractStatusReporter.fail(AbstractStatusReporter.java:90)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.AbstractStatusReporter.fail(AbstractStatusReporter.java:86)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.sendFinalState(FragmentExecutor.java:266)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:232)
>  [drill-java-exec-0.9.0-rebuffed.jar:0.9.0]
>       at 
> org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
>  [drill-common-0.9.0-rebuffed.jar:0.9.0]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_45]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_45]
>       at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
> 2015-05-04 14:20:45,721 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.d.e.w.fragment.FragmentExecutor - 
> 2ab81d73-3343-1627-1f34-bb4e88bb4c0c:0:0: State change requested from FAILED 
> --> CANCELLATION_REQUESTED for
> 2015-05-04 14:20:45,722 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] WARN  
> o.a.d.e.w.fragment.FragmentExecutor - Ignoring unexpected state transition 
> FAILED => CANCELLATION_REQUESTED.
> 2015-05-04 14:20:45,722 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.drill.exec.work.foreman.Foreman - foreman cleaning up.
> 2015-05-04 14:20:45,722 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] INFO  
> o.a.drill.exec.work.foreman.Foreman - State change requested.  FAILED --> 
> COMPLETED
> 2015-05-04 14:20:45,722 [2ab81d73-3343-1627-1f34-bb4e88bb4c0c:frag:0:0] WARN  
> o.a.drill.exec.work.foreman.Foreman - Dropping request to move to COMPLETED 
> state as query is already at FAILED state (which is terminal).
> {code}
> drill bit memory went up to 9.3G
> {code}
> Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
> Cpu(s):  0.3%us,  0.0%sy,  0.0%ni, 99.5%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
> Mem:  49416400k total, 33292808k used, 16123592k free,   198656k buffers
> Swap: 52428796k total,        0k used, 52428796k free,  1615500k cached
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>  5546 mapr      20   0 14.2g 9.3g  38m S  0.3 19.8   1:48.15 java
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to