Login  Register

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