[
https://issues.apache.org/jira/browse/TAJO-144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13756684#comment-13756684
]
JaeHwa Jung commented on TAJO-144:
----------------------------------
I found two kinds of errors.
First, If I use "SELECT * FROM" clause, it made NullPointerException as follows:
{code:xml}
tajo> insert overwrite into table1 select * from table2;
java.lang.NullPointerException
at
org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.rewrite(ProjectionPushDownRule.java:71)
at
org.apache.tajo.engine.planner.rewrite.BasicQueryRewriteEngine.rewrite(BasicQueryRewriteEngine.java:63)
at
org.apache.tajo.engine.planner.LogicalOptimizer.optimize(LogicalOptimizer.java:40)
at
org.apache.tajo.master.GlobalEngine.createLogicalPlan(GlobalEngine.java:189)
at
org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:110)
at
org.apache.tajo.master.TajoMasterClientService$TajoMasterClientProtocolServiceHandler.submitQuery(TajoMasterClientService.java:135)
at
org.apache.tajo.ipc.TajoMasterClientProtocol$TajoMasterClientProtocolService$2.callBlockingMethod(TajoMasterClientProtocol.java:241)
at
org.apache.tajo.rpc.ProtoBlockingRpcServer$ServerHandler.messageReceived(ProtoBlockingRpcServer.java:91)
at
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at
org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
at
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
at
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)</test>
{code}
Second, If I write each columns, it can't progress more than zero percent as
follows:
{code:xml}
tajo> insert overwrite into table4 select id, name, score, type from table2;
2013-09-03 23:51:26,073 INFO client.TajoClient
(TajoClient.java:connectionToQueryMaster(190)) - Connected to Query Master
(qid=q_1378219667565_0004, addr=192.168.1.103:26121)
Progress: 0%, response time: 1.313 sec
Progress: 0%, response time: 2.315 sec
Progress: 0%, response time: 3.317 sec
Progress: 0%, response time: 4.318 sec
Progress: 0%, response time: 5.319 sec
Progress: 0%, response time: 6.321 sec
Progress: 0%, response time: 7.323 sec
Progress: 0%, response time: 8.325 sec
Progress: 0%, response time: 9.327 sec
Progress: 0%, response time: 10.328 sec
Progress: 0%, response time: 11.33 sec
{code}
In second case, Tajo master write log file as follows:
{code:xml}
2013-09-03 23:51:22,023 INFO master.GlobalEngine
(GlobalEngine.java:executeQuery(106)) - SQL: insert overwrite into table4
select id, name, score, type from table2
2013-09-03 23:51:22,041 INFO rewrite.BasicQueryRewriteEngine
(BasicQueryRewriteEngine.java:rewrite(64)) - The rule "ProjectionPushDown "
rewrites the query.
2013-09-03 23:51:22,047 INFO master.GlobalEngine
(GlobalEngine.java:createLogicalPlan(190)) - LogicalPlan:
Logical Plan Root
INSERT OVERWRITE INTO{
"tableName": "table4",
"uri": {},
"meta": {
"schema": {
"fields": [
{
"name": "table4.id",
"dataType": {}
},
{
"name": "table4.name",
"dataType": {}
},
{
"name": "table4.score",
"dataType": {}
},
{
"name": "table4.type",
"dataType": {}
}
],
"fieldsByName": {
"table4.score": 2,
"table4.name": 1,
"table4.id": 0,
"table4.type": 3
}
},
"storeType": "CSV",
"options": {
"keyVals": {
"csvfile.delimiter": "|"
}
},
"stat": {
"numRows": 0,
"numBytes": 0,
"numBlocks": 0,
"numPartitions": 0,
"avgRows": 0,
"columnStats": []
}
}
} [SUBQUERY]
2013-09-03 23:51:22,051 INFO service.AbstractService
(AbstractService.java:init(81)) -
Service:org.apache.tajo.master.TajoAsyncDispatcher is inited.
2013-09-03 23:51:22,051 INFO service.AbstractService
(AbstractService.java:init(81)) -
Service:org.apache.tajo.master.querymaster.QueryInProgress is inited.
2013-09-03 23:51:22,052 INFO service.AbstractService
(AbstractService.java:start(94)) -
Service:org.apache.tajo.master.TajoAsyncDispatcher is started.
2013-09-03 23:51:22,052 INFO master.TajoAsyncDispatcher
(TajoAsyncDispatcher.java:start(101)) - AsyncDispatcher
started:QueryInProgress:q_1378219667565_0004
2013-09-03 23:51:22,052 INFO service.AbstractService
(AbstractService.java:start(94)) -
Service:org.apache.tajo.master.querymaster.QueryInProgress is started.
2013-09-03 23:51:22,052 INFO querymaster.QueryInProgress
(QueryInProgress.java:startQueryMaster(145)) - Initializing QueryInProgress for
QueryID=q_1378219667565_0004
2013-09-03 23:51:22,052 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:allocateAndLaunchQueryMaster(204)) - Allocate and
launch ApplicationMaster for QueryMaster: queryId=q_1378219667565_0004,
appId=application_1378219667565_0004
2013-09-03 23:51:22,053 INFO master.ContainerProxy
(YarnContainerProxy.java:createCommonContainerLaunchContext(233)) - Set the
environment for the application master
2013-09-03 23:51:22,053 INFO master.ContainerProxy
(YarnContainerProxy.java:createCommonContainerLaunchContext(301)) - defaultFS:
hdfs://localhost:9010
2013-09-03 23:51:22,053 INFO master.ContainerProxy
(YarnContainerProxy.java:createCommonContainerLaunchContext(302)) - defaultFS:
hdfs://localhost:9010
2013-09-03 23:51:22,055 INFO master.ContainerProxy
(YarnContainerProxy.java:createCommonContainerLaunchContext(316)) - Writing a
QueryConf to HDFS and add to local environment
2013-09-03 23:51:22,134 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:allocateAndLaunchQueryMaster(265)) - Completed
setting up QueryMasterRunner command ${JAVA_HOME}/bin/java -Xmx2000m
org.apache.tajo.worker.TajoWorker qm q_1378219667565_0004
blrunnerui-MacBook-Pro.local:9005 1><LOG_DIR>/stdout 2><LOG_DIR>/stderr
2013-09-03 23:51:22,135 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:allocateAndLaunchQueryMaster(283)) - Submitting
QueryMaster to ResourceManager
2013-09-03 23:51:22,137 INFO client.YarnClientImpl
(YarnClientImpl.java:submitApplication(134)) - Submitted application
application_1378219667565_0004 to ResourceManager at /0.0.0.0:8032
2013-09-03 23:51:22,139 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:monitorApplication(303)) - Got application report
from ASM for, appId=4, appAttemptId=appattempt_1378219667565_0004_000001,
clientToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default,
appMasterRpcPort=0, appStartTime=1378219882136, yarnAppState=SUBMITTED,
distributedFinalState=UNDEFINED,
appTrackingUrl=blrunnerui-MacBook-Pro.local:8088/proxy/application_1378219667565_0004/,
appUser=blrunner
2013-09-03 23:51:22,242 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:monitorApplication(303)) - Got application report
from ASM for, appId=4, appAttemptId=appattempt_1378219667565_0004_000001,
clientToken=null, appDiagnostics=, appMasterHost=N/A, appQueue=default,
appMasterRpcPort=0, appStartTime=1378219882136, yarnAppState=ACCEPTED,
distributedFinalState=UNDEFINED,
appTrackingUrl=blrunnerui-MacBook-Pro.local:8088/proxy/application_1378219667565_0004/,
appUser=blrunner
2013-09-03 23:51:22,242 INFO rm.YarnTajoResourceManager
(YarnTajoResourceManager.java:allocateAndLaunchQueryMaster(289)) - Launching
QueryMaster with appAttemptId: appattempt_1378219667565_0004_000001
2013-09-03 23:51:22,242 INFO querymaster.QueryInProgress
(QueryInProgress.java:submmitQueryToMaster(199)) - No QueryMaster conneciton
info.
2013-09-03 23:51:25,769 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:25,769 INFO querymaster.QueryInProgress
(QueryInProgress.java:connectQueryMaster(182)) - Connect to
QueryMaster:blrunnerui-MacBook-Pro.local/192.168.1.103:26122
2013-09-03 23:51:25,773 INFO querymaster.QueryInProgress
(QueryInProgress.java:submmitQueryToMaster(203)) - Call executeQuery to
:blrunnerui-MacBook-Pro.local:26122,q_1378219667565_0004
2013-09-03 23:51:27,496 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:29,497 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:31,498 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:33,499 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:35,500 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:37,502 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:39,503 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
2013-09-03 23:51:41,504 INFO querymaster.QueryInProgress
(QueryInProgress.java:heartbeat(233)) - Received QueryMaster
heartbeat:q_1378219667565_0004, queryMaster=host:blrunnerui-MacBook-Pro.local,
port=26122,26121,0, slots=0:0:0, used=0:0:0
{code}
> Implement INSERT OVERWRITE clause
> ---------------------------------
>
> Key: TAJO-144
> URL: https://issues.apache.org/jira/browse/TAJO-144
> Project: Tajo
> Issue Type: New Feature
> Components: planner/optimizer
> Reporter: Hyunsik Choi
> Assignee: Hyunsik Choi
> Fix For: 0.2-incubating
>
> Attachments: TAJO-144.patch
>
>
> 'INSERT INTO' appends data into existing table. In contrast, 'INSERT
> OVERWRITE' will overwrite existing table data. It is used as an idiom in
> analytical fields based HDFS. We need it.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira