Program didn't stop after loading successfully
Posted by xm_zzc on May 04, 2017; 3:59am
URL: http://apache-carbondata-dev-mailing-list-archive.168.s1.nabble.com/Program-didn-t-stop-after-loading-successfully-tp12001.html
Hi all:
I used spark to read a parquet file and than save it as carbondata file, but I found that my program didn't stop after loading data successfully, I saw log output as following:
main -[MyUbuntu-64][myubuntu][Thread-1]Total time taken to write dictionary file is: 40728
main -[MyUbuntu-64][myubuntu][Thread-1]Data load is successful for default.parquet_to_carbondata2
main -main compaction need status is false
main -main Successfully deleted the lock file /data/carbon_data/default/parquet_to_carbondata2/meta.lock
According to the log above, I think that the data load was successful, but why the programe hanged?
My program is :
val warehouseLocation = Constants.SPARK_WAREHOUSE
val storeLocation = Constants.CARBON_FILES
CarbonProperties.getInstance()
.addProperty(CarbonCommonConstants.CARBON_TIMESTAMP_FORMAT, "yyyy-MM-dd HH:mm:ss")
.addProperty(CarbonCommonConstants.CARBON_DATE_FORMAT, "yyyy-MM-dd")
import org.apache.spark.sql.CarbonSession._
val spark = SparkSession
.builder()
.appName("TestCarbonData")
.master("local[2]")
.config("spark.sql.warehouse.dir", warehouseLocation)
.getOrCreateCarbonSession(storeLocation, Constants.METASTORE_DB)
spark.conf.set("spark.sql.parquet.binaryAsString", true)
val testParquet2 = spark.read.parquet("file:///data/cbd_test.parquet")
spark.sql("""DROP TABLE IF EXISTS parquet_to_carbondata2""")
testParquet2.show()
testParquet2.printSchema()
println("testParquet2: " + testParquet2.count())
testParquet2.write
.format("carbondata")
.option("tableName", "parquet_to_carbondata2")
.option("tempCSV", "false")
.option("compress", "true")
.option("single_pass", "true")
.option("partitionCount", "2")
.option("table_blocksize", "8")
.option("dictionary_exclude", "ftype,chan")
.mode(SaveMode.Overwrite)
.save()
spark.stop()
I use command 'jstack' to trace this program, the messages are as following:
"Attach Listener" #438 daemon prio=9 os_prio=0 tid=0x00007f91e80a3800 nid=0x1c44 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"DestroyJavaVM" #435 prio=5 os_prio=0 tid=0x00007f9240015000 nid=0x191e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"nioEventLoopGroup-11-1" #96 prio=10 os_prio=0 tid=0x00007f920009d000 nid=0x19a3 runnable [0x00007f9160df9000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000067a853b30> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x000000065fa85800> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000006602e3ab8> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:746)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:391)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"threadDeathWatcher-9-1" #91 daemon prio=1 os_prio=0 tid=0x00007f919c0d4000 nid=0x199e sleeping[0x00007f9168389000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:152)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"ForkJoinPool-2-worker-11" #65 daemon prio=5 os_prio=0 tid=0x00007f919c001800 nid=0x1979 waiting on condition [0x00007f916b3ef000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000067aa126b8> (a scala.concurrent.forkjoin.ForkJoinPool)
at scala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2075)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Locked ownable synchronizers:
- None
"BoneCP-pool-watch-thread" #54 daemon prio=5 os_prio=0 tid=0x00007f92427d2800 nid=0x1966 waiting on condition [0x00007f91bc738000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000065fa82cf8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- <0x000000067a87f9d0> (a java.util.concurrent.ThreadPoolExecutor$Worker)
"BoneCP-keep-alive-scheduler" #53 daemon prio=5 os_prio=0 tid=0x00007f92427a8800 nid=0x1965 waiting on condition [0x00007f91bc839000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000067ac1da68> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"com.google.common.base.internal.Finalizer" #52 daemon prio=5 os_prio=0 tid=0x00007f92427a7000 nid=0x1964 in Object.wait() [0x00007f91bc93a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000065fa82ce0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x000000065fa82ce0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at com.google.common.base.internal.Finalizer.run(Finalizer.java:127)
Locked ownable synchronizers:
- None
"BoneCP-pool-watch-thread" #51 daemon prio=5 os_prio=0 tid=0x00007f9242518800 nid=0x1963 waiting on condition [0x00007f91bcc3b000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000065f801780> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
at com.jolbox.bonecp.PoolWatchThread.run(PoolWatchThread.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- <0x000000066020ed18> (a java.util.concurrent.ThreadPoolExecutor$Worker)
"BoneCP-keep-alive-scheduler" #50 daemon prio=5 os_prio=0 tid=0x00007f924251b800 nid=0x1962 waiting on condition [0x00007f91bcd3c000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000065f7973b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"com.google.common.base.internal.Finalizer" #49 daemon prio=5 os_prio=0 tid=0x00007f92410bd000 nid=0x1961 in Object.wait() [0x00007f91bce3d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000065f8017b0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x000000065f8017b0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at com.google.common.base.internal.Finalizer.run(Finalizer.java:127)
Locked ownable synchronizers:
- None
"derby.rawStoreDaemon" #48 daemon prio=5 os_prio=0 tid=0x00007f9242331800 nid=0x1960 in Object.wait() [0x00007f91bd13e000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.derby.impl.services.daemon.BasicDaemon.rest(Unknown Source)
- locked <0x000000066043f498> (a org.apache.derby.impl.services.daemon.BasicDaemon)
at org.apache.derby.impl.services.daemon.BasicDaemon.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"Timer-1" #47 daemon prio=5 os_prio=0 tid=0x00007f9242314800 nid=0x195f in Object.wait() [0x00007f91bd43f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000065f768008> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x000000065f768008> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
Locked ownable synchronizers:
- None
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007f9240161000 nid=0x1934 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C1 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007f9240144000 nid=0x1933 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007f9240141800 nid=0x1932 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007f924013f800 nid=0x1931 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" #5 daemon prio=9 os_prio=0 tid=0x00007f924013d800 nid=0x1930 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=0 tid=0x00007f924013c000 nid=0x192f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f9240104800 nid=0x192e in Object.wait() [0x00007f9219424000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x000000065f3ff8d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
Locked ownable synchronizers:
- None
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f9240102000 nid=0x192d in Object.wait() [0x00007f9219525000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
- locked <0x000000065f3d4538> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"VM Thread" os_prio=0 tid=0x00007f92400fd000 nid=0x192c runnable
"Gang worker#0 (Parallel GC Threads)" os_prio=0 tid=0x00007f9240026800 nid=0x191f runnable
"Gang worker#1 (Parallel GC Threads)" os_prio=0 tid=0x00007f9240028000 nid=0x1920 runnable
"Gang worker#2 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002a000 nid=0x1921 runnable
"Gang worker#3 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002b800 nid=0x1922 runnable
"Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002d800 nid=0x1923 runnable
"Gang worker#5 (Parallel GC Threads)" os_prio=0 tid=0x00007f924002f000 nid=0x1924 runnable
"Concurrent Mark-Sweep GC Thread" os_prio=0 tid=0x00007f924008b000 nid=0x1927 runnable
"Gang worker#0 (Parallel CMS Threads)" os_prio=0 tid=0x00007f9240087000 nid=0x1925 runnable
"Gang worker#1 (Parallel CMS Threads)" os_prio=0 tid=0x00007f9240088800 nid=0x1926 runnable
"VM Periodic Task Thread" os_prio=0 tid=0x00007f9240164800 nid=0x1935 waiting on condition
JNI global references: 341